Open sergeynilov opened 5 months ago
I've found that setting the advancedSyntax
option on your index to true
will make any text that's double quoted be matched exactly as you said.
You can either do this from your index configuration file or the index settings page in the dashboard.
algolia/scout-extended
package, you can just run the command php artisan scout:optimize
to generate separate configuration files inside the config
directory for each model that uses the Laravel\Scout\Searchable
trait. Open the corresponding configuration file and look for the key advancedSyntax
. By default it's set to false
, set it to true
and run the command php artisan scout:sync
, and if you're prompted to sync the settings file to the remote answer yes
.Configuration
tab, then scroll down to the Advanced syntax
link and change the switch from the right panel then save the settings.Then try searching again for "Aut recusandae et"
(notice the double quotes, they're necessary for exact matching), and you should get only results that contains this phrase.
You can also control the advancedSyntax
option per search if you want by passing a custom search parameter, for example:
$tasks = App\Models\Task::search('"Aut recusandae et"')->with([
"advancedSyntax" => true
])->get();
Working with algolia in Laravel 10 app and using algolia/algoliasearch-client-php 3.4 and algolia/scout-extended 3.0 packages I found that search method works different I expected when I enter several space splitted words : it search for all words found in records.
I tested on algolia side and see that search works in the same way :
Can this issue can be configurable, say in config/scout.php or on algolia side ?