Skip to content
Snippets Groups Projects
README.md 3.55 KiB
Newer Older
# ElasticsearchDSL

Simonas Šerlinskas's avatar
Simonas Šerlinskas committed
Introducing Elasticsearch DSL library to provide objective query builder for [Elasticsearch bundle](https://github.com/ongr-io/ElasticsearchBundle) and [elasticsearch-php](https://github.com/elastic/elasticsearch-php) client. You can easily build any Elasticsearch query and transform it to an array.

If you need any help, [stack overflow](http://stackoverflow.com/questions/tagged/ongr)
is the preffered and recommended way to ask ONGR support questions.
Simonas Šerlinskas's avatar
Simonas Šerlinskas committed
 
[![Build Status](https://travis-ci.org/ongr-io/ElasticsearchDSL.svg?branch=master)](https://travis-ci.org/ongr-io/ElasticsearchDSL)
[![Coverage Status](https://coveralls.io/repos/ongr-io/ElasticsearchDSL/badge.svg?branch=master&service=github)](https://coveralls.io/github/ongr-io/ElasticsearchDSL?branch=master)
Simonas Šerlinskas's avatar
Simonas Šerlinskas committed
[![Latest Stable Version](https://poser.pugx.org/ongr/elasticsearch-dsl/v/stable)](https://packagist.org/packages/ongr/elasticsearch-dsl)
[![Total Downloads](https://poser.pugx.org/ongr/elasticsearch-dsl/downloads)](https://packagist.org/packages/ongr/elasticsearch-dsl)
[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/ongr-io/ElasticsearchDSL/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/ongr-io/ElasticsearchDSL/?branch=master)
Simonas Šerlinskas's avatar
Simonas Šerlinskas committed
## Version matrix

Simonas Šerlinskas's avatar
Simonas Šerlinskas committed
| Elasticsearch version | ElasticsearchDSL version    |
Simonas Šerlinskas's avatar
Simonas Šerlinskas committed
| --------------------- | --------------------------- |
Simonas Šerlinskas's avatar
Simonas Šerlinskas committed
| >= 6.0                | >= 7.0                      |
| >= 6.0, < 7.0         | >= 6.0                      |
| >= 5.0, < 6.0         | >= 5.0                      |
Simonas Šerlinskas's avatar
Simonas Šerlinskas committed
| >= 2.0, < 5.0         | >= 2.0 (not supported)      |
| >= 1.0, < 2.0         | 1.x (not supported)         |
| <= 0.90.x             | not supported               |
Simonas Šerlinskas's avatar
Simonas Šerlinskas committed

## Documentation

[The online documentation of the bundle is here](docs/index.md)
Simonas Šerlinskas's avatar
Simonas Šerlinskas committed

## Try it!

### Installation

Install library with [composer](https://getcomposer.org):

Mantas Varatiejus's avatar
Mantas Varatiejus committed
```bash
$ composer require ongr/elasticsearch-dsl
> [elasticsearch-php](https://github.com/elastic/elasticsearch-php) client is defined in the composer requirements, no need to install it.

Simonas Šerlinskas's avatar
Simonas Šerlinskas committed
### Search

Elasticsearch DSL was extracted from [Elasticsearch Bundle](https://github.com/ongr-io/ElasticsearchBundle) to provide standalone query dsl for [elasticsearch-php](https://github.com/elastic/elasticsearch-php). Examples how to use it together with [Elasticsearch Bundle](https://github.com/ongr-io/ElasticsearchBundle) can be found in the [Elasticsearch Bundle docs](https://github.com/ongr-io/ElasticsearchBundle/blob/master/Resources/doc/search.md).

If you dont want to use Symfony or Elasticsearch bundle, no worries, you can use it in any project together with [elasticsearch-php](https://github.com/elastic/elasticsearch-php). Here's the example:

If you are using Symfony there is also the [ElasticsearchBundle](https://github.com/ongr-io/ElasticsearchBundle)
which provides full integration with Elasticsearch DSL.
The library is standalone and is not coupled with any framework. You can use it in any PHP project, the only
requirement is composer.  Here's the example:
Simonas Šerlinskas's avatar
Simonas Šerlinskas committed

Create search:

```php
 <?php
  require 'vendor/autoload.php'; //Composer autoload
  $client = ClientBuilder::create()->build(); //elasticsearch-php client
Simonas Šerlinskas's avatar
Simonas Šerlinskas committed
  
  $matchAll = new ONGR\ElasticsearchDSL\Query\MatchAllQuery();
  
  $search = new ONGR\ElasticsearchDSL\Search();
Simonas Šerlinskas's avatar
Simonas Šerlinskas committed
  $search->addQuery($matchAll);
Simonas Šerlinskas's avatar
Simonas Šerlinskas committed
  
  $params = [
    'index' => 'your_index',
    'body' => $search->toArray(),
  ];
  
  $results = $client->search($params);
```

Elasticsearch DSL covers every elasticsearch query, all examples can be found in [the documentation](docs/index.md)