- $termString = implode(' ', $terms);
- $fields = implode(',', $fieldsToSearch);
- $search = static::selectRaw('*, MATCH(name) AGAINST(? IN BOOLEAN MODE) AS title_relevance', [$termString]);
- $search = $search->whereRaw('MATCH(' . $fields . ') AGAINST(? IN BOOLEAN MODE)', [$termString]);
+
+ $isFuzzy = count($exactTerms) === 0 && count($fuzzyTerms) > 0;
+
+
+ // Perform fulltext search if relevant terms exist.
+ if ($isFuzzy) {
+ $termString = implode(' ', $fuzzyTerms);
+ $fields = implode(',', $this->fieldsToSearch);
+ $search = $search->selectRaw('*, MATCH(name) AGAINST(? IN BOOLEAN MODE) AS title_relevance', [$termString]);
+ $search = $search->whereRaw('MATCH(' . $fields . ') AGAINST(? IN BOOLEAN MODE)', [$termString]);
+ }