AlgoliaEngine
class AlgoliaEngine extends Engine implements UpdatesIndexSettings
Algolia search engine implementation (v4 client).
Uses the Algolia\AlgoliaSearch\Api\SearchClient (v4) flat API. The v3 split-concrete-class layout from Laravel is collapsed into this single class because Hypervel only supports Algolia v4.
Identify headers (X-Forwarded-For, X-Algolia-UserToken) are computed per request and passed as per-call request options rather than baked into default client headers at construction time. This is the deliberate divergence from Laravel's EngineManager::defaultAlgoliaHeaders() which cannot work correctly under a persistent-worker model where the engine instance is cached across requests.
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 and return the primary keys of the given results using the given key name.
Create a new AlgoliaEngine instance.
Build per-request identify headers for the current request.
Delete all search indexes, optionally scoped by name prefix.
Update the index settings for the given index.
Configure the soft delete filter within the given settings.
Dynamically call the Algolia client instance.
Details
at line 53
void
update(Collection $models)
Update the given models in the search index.
at line 95
void
delete(Collection $models)
Remove the given models from the search index.
at line 114
mixed
search(Builder $builder)
Perform a search against the engine.
at line 125
mixed
paginate(Builder $builder, int $perPage, int $page)
Perform a paginated search against the engine.
at line 241
Collection
mapIds(mixed $results)
Pluck and return the primary keys of the given results.
at line 251
Collection
map(Builder $builder, mixed $results, Model $model)
Map the given results to instances of the given model.
at line 290
LazyCollection
lazyMap(Builder $builder, mixed $results, Model $model)
Map the given results to instances of the given model via a lazy collection.
at line 325
int
getTotalCount(mixed $results)
Get the total count from a raw result returned by the engine.
at line 335
void
flush(Model $model)
Flush all of the model's records from the engine.
at line 345
mixed
createIndex(string $name, array $options = [])
Create a search index.
at line 353
mixed
deleteIndex(string $name)
Delete a search index.
in
Engine at line 90
Collection
mapIdsFrom(mixed $results, string $key)
Pluck and return the primary keys of the given results using the given key name.
in
Engine at line 98
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 40
__construct(SearchClient $algolia, bool $softDelete = false, bool $identify = false)
Create a new AlgoliaEngine instance.
at line 137
protected mixed
performSearch(Builder $builder, array $options = [])
Perform the given search on the engine.
at line 179
protected array
identifyHeaders()
Build per-request identify headers for the current request.
Reads the current coroutine-local request directly from RequestContext rather than via the request() helper. Matches the pattern used by CookieJar and other Hypervel code that needs request state without depending on HttpServiceProvider being registered. Returns an empty array when no request is in context (e.g. CLI, queue jobs), the IP is missing or private/reserved, or no authenticated user is present.
at line 209
protected array
filters(Builder $builder)
Get the filter array for the query.
at line 368
array
deleteAllIndexes(string|null $prefix = null)
Delete all search indexes, optionally scoped by name prefix.
When $prefix is non-empty, only indexes whose name starts with $prefix are deleted. When $prefix is null (or empty string, which str_starts_with matches against every string), every index in the Algolia application is deleted.
at line 391
void
updateIndexSettings(string $name, array $settings = [])
Update the index settings for the given index.
at line 402
array
configureSoftDeleteFilter(array $settings = [])
Configure the soft delete filter within the given settings.
at line 412
protected bool
usesSoftDelete(Model $model)
Determine if the given model uses soft deletes.
at line 420
mixed
__call(string $method, array $parameters)
Dynamically call the Algolia client instance.