This documentation is for a version that has reached its End Of Life. Such versions are no longer supported and don't receive security updates. Consider updating to a newer version.
Manipulate Elasticsearch query¶
You can customize the search query before it's executed.
To do it, subscribe to Ibexa\Contracts\Elasticsearch\Query\Event\QueryFilterEvent.
The following example shows how to add a Search Criterion to all queries.
Depending on your configuration, this might impact all search queries, including those used for search and content tree in the back office.
``` php {skip-validation} hl_lines="34"
getQuery(); $additionalCriteria = new ObjectStateIdentifier('locked'); if ($query->filter !== null) { $query->filter = $additionalCriteria; } else { // Append Criterion to existing filter $query->filter = new LogicalAnd([ $query->filter, $additionalCriteria, ]); } } public static function getSubscribedEvents(): array { return [ QueryFilterEvent::class => 'onQueryFilter', ]; } }1 2 3 4 5 6 7 8 | |