MeilisearchEngine
class MeilisearchEngine extends Engine implements UpdatesIndexSettings
Meilisearch search engine implementation.
Provides full-text search using Meilisearch as the backend.
Methods
Pluck and return the primary keys of the given results.
Get the total count from a raw result returned by the engine.
Create a search index.
Delete a search index.
Pluck the given results with the given primary key name.
Create a new MeilisearchEngine instance.
Update the index settings for the given index.
Configure the soft delete filter within the given settings.
Delete all search indexes, optionally scoped by uid prefix.
Generate a tenant token for frontend direct search.
Get the default API key UID for tenant token generation.
Get the underlying Meilisearch client.
Dynamically call the Meilisearch client instance.
Details
at line 45
void
update(Collection $models)
Update the given models in the search index.
at line 87
void
delete(Collection $models)
Remove the given models from the search index.
at line 105
mixed
search(Builder $builder)
Perform a search against the engine.
at line 117
mixed
paginate(Builder $builder, int $perPage, int $page)
Perform a paginated search against the engine.
at line 219
Collection
mapIds(mixed $results)
Pluck and return the primary keys of the given results.
at line 256
Collection
map(Builder $builder, mixed $results, Model $model)
Map the given results to instances of the given model.
at line 298
LazyCollection
lazyMap(Builder $builder, mixed $results, Model $model)
Map the given results to instances of the given model via a lazy collection.
at line 336
int
getTotalCount(mixed $results)
Get the total count from a raw result returned by the engine.
at line 346
void
flush(Model $model)
Flush all of the model's records from the engine.
at line 358
mixed
createIndex(string $name, array $options = [])
Create a search index.
at line 404
mixed
deleteIndex(string $name)
Delete a search index.
at line 234
Collection
mapIdsFrom(mixed $results, string $key)
Pluck the given results with the given primary key name.
at line 244
Collection
keys(Builder $builder)
Get the results of the query as a Collection of primary keys.
in
Engine at line 106
Collection
get(Builder $builder)
Get the results of the given query mapped onto models.
in
Engine at line 118
LazyCollection
cursor(Builder $builder)
Get a lazy collection for the given query mapped onto models.
at line 33
__construct(Client $meilisearch, bool $softDelete = false)
Create a new MeilisearchEngine instance.
at line 130
protected mixed
performSearch(Builder $builder, array $searchParams = [])
Perform the given search on the engine.
at line 160
protected string
filters(Builder $builder)
Get the filter string for the query.
at line 209
protected array
buildSortFromOrderByClauses(Builder $builder)
Get the sort array for the query.
at line 376
void
updateIndexSettings(string $name, array $settings = [])
Update the index settings for the given index.
at line 392
array
configureSoftDeleteFilter(array $settings = [])
Configure the soft delete filter within the given settings.
at line 419
array
deleteAllIndexes(string|null $prefix = null)
Delete all search indexes, optionally scoped by uid prefix.
When $prefix is non-empty, only indexes whose uid starts with $prefix are deleted. When $prefix is null (or empty string, which str_starts_with matches against every string), every index on the Meilisearch server is deleted.
at line 455
string
generateTenantToken(array $searchRules, string|null $apiKeyUid = null, DateTimeImmutable|null $expiresAt = null)
Generate a tenant token for frontend direct search.
Tenant tokens allow secure, scoped searches directly from the frontend without exposing the admin API key. All tenants share a single index, with data isolation enforced at query time via embedded filters.
at line 472
protected string
getDefaultApiKeyUid()
Get the default API key UID for tenant token generation.
at line 494
protected bool
usesSoftDelete(Model $model)
Determine if the given model uses soft deletes.
at line 502
Client
getMeilisearchClient()
Get the underlying Meilisearch client.
at line 510
mixed
__call(string $method, array $parameters)
Dynamically call the Meilisearch client instance.