2017 © Pedro Peláez
 

library elasticsearch-query-dsl-php

Feature complete, object oriented, composable, extendable ElasticSearch query DSL builder for PHP.

image

gskema/elasticsearch-query-dsl-php

Feature complete, object oriented, composable, extendable ElasticSearch query DSL builder for PHP.

  • Friday, July 27, 2018
  • by gskema
  • Repository
  • 0 Watchers
  • 1 Stars
  • 4 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 2 Versions
  • 100 % Grown

The README.md

Elasticsearch Query DSL

Latest Version on Packagist ![Software License][ico-license] Build Status Coverage Status ![Total Downloads][ico-downloads], (*1)

Feature complete, object oriented, composable, extendable Elasticsearch query DSL builder for PHP., (*2)

Features

  • Dependency free
  • Can be used with any PHP Elasticsearch client
  • Fully interfaced, ready for custom classes and
  • Explicit class and property naming, fully matches produced JSON and Elasticsearch docs
  • All configuration options are listed inside classes, links to documentation
  • Classes can be easily composed, extended
  • Usage of setters/getters so that everything can be inlined and chained.
  • Fully working ::__clone() methods
  • Extendable code: no usage of private, final or readonly
  • Basic objects created on __construct, no unnecessary body build logic until jsonSerialize() is called

Versions

Most of the classes should be compatible with any Elasticsearch versions. If something is not compatible or not supported, Raw* or custom classes can be used., (*3)

Package version Elasticsearch version
>=6.0.0 <7.0.0 >=6.0.0 <7.0.0
>=5.0.0 <6.0.0 >=5.0.0 <6.0.0

Because major version number follows Elasticsearch major version number, second number is reserved for breaking changes., (*4)

Install

``` bash composer require gskema/elasticsearch-query-dsl-php 6.* # match your Elasticsearch version, (*5)


## Usage ``` php $searchRequest = new SearchRequest(); $searchRequest->setOption('min_score', 3.5); $searchRequest->setSize(10); $searchRequest->setQuery( (new BoolMatcher())->addMustNot(new TermMatcher('field1', 'value1')) ); $searchRequest->addStatGroup('stat_group_1'); $searchRequest->setAgg( 'agg1', (new FilterAggregation(new MatchAllMatcher())) ->setAgg('agg2', TermsAggregation::fromField('field2', 'value2')) ); (new ElasticsearchClient())->search($searchRequest->jsonSerialize());

All classes match naming in official Elasticsearch documentation. Each class has a list of possible configuration options listed above class using attributes:, (*6)

#[Options([
    'flags' => 'ALL|ANYSTRING|COMPLEMENT|EMPTY|INTERSECTION|INTERVAL|NONE',
    'max_determinized_states' => 2000,
    ...
])]
class RegexpMatcher implements MultiTermMatcherInterface {}

Similarly, SearchRequest class also has possible URL parameters listed:, (*7)

#[Parameters([
    'timeout' => '2s',
    'terminate_after' => 1,
    'max_concurrent_shard_requests' => 2,
    ...
])]
class SearchRequest implements SearchRequestInterface {}

Matcher?

Request object that is received by Elasticsearch /_search/ has many properties and sub-properties like query, filter, post_filter, etc., (*8)

To avoid convoluted expressions like, (*9)

(new SearchRequest())->setQuery(
    (new BoolQuery()->addFilter(new TermQuery('x')
)->setPostFilter(new BoolQuery(...)))

keyword matcher was explicitly chosen., (*10)

Change log

Please see CHANGELOG for more information on what has changed recently., (*11)

Testing

bash ./vendor/bin/phpunit, (*12)

Contributing

Please see CONTRIBUTING for details., (*13)

License

The MIT License (MIT). Please see License File for more information., (*14)

The Versions

27/07 2018

dev-master

9999999-dev https://github.com/gskema/elasticsearch-query-dsl-php

Feature complete, object oriented, composable, extendable ElasticSearch query DSL builder for PHP.

  Sources   Download

MIT

The Requires

  • php ^7.0

 

The Development Requires

by Gytis Šk

elasticsearch query dsl

04/04 2018

v5.0.0

5.0.0.0 https://github.com/gskema/elasticsearch-query-dsl-php

Feature complete, object oriented, composable, extendable ElasticSearch query DSL builder for PHP.

  Sources   Download

MIT

The Requires

  • php ^7.0

 

The Development Requires

by Gytis Šk

elasticsearch query dsl