Skip to content

Customizing Builder

You can customize the Scout query for each model by overriding the globalSearchBuilder() method.

Use this method to apply where clauses, scopes, or other query modifications:

use Laravel\Scout\Builder;
public function globalSearchBuilder(Builder $builder, string $query): Builder
{
return $builder->where('published', true);
}

Meilisearch uses word-prefix matching. Substrings that don’t start at a word boundary (e.g., “ano” in “Mariano”) won’t match.

If you need infix/substring matching, you can configure attributesToSearchOn in Meilisearch or switch to the database driver.

For Algolia, you can pass additional parameters to the search:

public function globalSearchBuilder(Builder $builder, string $query): Builder
{
return $builder->with([
'aroundLatLng' => '40.71, -74.01',
]);
}

The database driver uses LIKE queries, which support infix matching by default:

public function globalSearchBuilder(Builder $builder, string $query): Builder
{
return $builder->where('active', true);
}