Download the PHP package greensight/laravel-elastic-query-specification without Composer
On this page you can find all versions of the php package greensight/laravel-elastic-query-specification. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package laravel-elastic-query-specification
Laravel Elastic Query Specification
Deprecated, use https://github.com/ensi-platform/laravel-elastic-query-specification instead
Extension for greensight/laravel-elastic-query to describe queries in a declarative way.
Installation
- Install greensight/laravel-elastic-query https://github.com/greensight/laravel-elastic-query#installation
composer require greensight/laravel-elastic-query-specification
Usage // TODO translate to english
Все виды декларативных запросов строятся на основе спецификации. В ней содержатся определения доступных фильтров, сортировок и агрегатов.
Примеры запросов для данной спецификации.
Метод nested
добавляет спецификации для вложенных документов. Имена фильтров, агрегатов и сортировок из них
экспортируются в глобальную область видимости без добавления каких-либо префиксов. Если для фильтров допустимо иметь
одинаковые имена, то для прочих компонентов нет.
В спецификациях для вложенных документов могут использоваться только поля этих документов.
Допустимо добавлять несколько спецификаций для одного и того же поля типа nested
.
Ограничения where*
позволяют устанавливать дополнительные программные условия отбора, которые не могут быть изменены
клиентом. Ограничения, заданные в корневой спецификации, применяются всегда. Ограничения во вложенных спецификациях идут
только как дополнения к добавляемым в запрос фильтрам, агрегатам или сортировкам. Например, если во вложенной
спецификации нет ни одного активного фильтра, то в раздел фильтров запроса к Elasticsearch ограничения из этой
спецификации не попадут.
Метод allowedFilters
определяет доступные для клиента фильтры. Каждый фильтр обязательно содержит уникальное в пределах
спецификации имя. В то же время, в корневой и вложенной спецификациях или в разных вложенных спецификациях, имена могут
повторяться. Все фильтры с одинаковыми именами будут заполнены одним значением из параметров запроса.
Кроме имени самого фильтра можно отдельно задать имя поля в индексе, для которого он применяется, и значение по умолчанию.
Виды фильтров
Доступные клиенту сортировки добавляются методом allowedSorts
. Направление сортировки задается в ее имени.
Знак +
или отсутствие знака соответствует порядку по возрастанию, -
- порядку по убыванию.
По умолчанию используется сортировка по возрастанию с выбором минимального, в случае нескольких значений в поле.
Для сортировки из вложенной спецификации учитываются все ограничения и активные фильтры из этой же спецификации.
Агрегаты объявляются методом allowedAggregates
. Клиент в параметрах запроса указывает список имен агрегатов, результаты
которых он ожидает в ответе.
Виды агрегатов
Агрегаты из вложенных спецификаций добавляются в запрос к Elasticsearch со всеми ограничениями и активными фильтрами.
Поиск документов
Расчет сводных показателей
Contributing
Please see CONTRIBUTING for details.
Testing
- composer install
- npm i
- Start Elasticsearch in your preferred way.
- Copy
phpunit.xml.dist
tophpunit.xml
and set correct env variables there - composer test
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
License
The MIT License (MIT). Please see License File for more information.
All versions of laravel-elastic-query-specification with dependencies
elasticsearch/elasticsearch Version ^7.13
greensight/laravel-elastic-query Version ^0.2.0
illuminate/contracts Version ^8.37
illuminate/support Version ^8.0
spatie/laravel-package-tools Version ^1.4.3