Elasticsearch Dsl

An objective query builder for Elasticsearch
Alternatives To Elasticsearch Dsl
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Bodybuilder1,21810558a month ago65May 21, 20229mitJavaScript
An elasticsearch query body builder :muscle:
Elastic Builder460161616 days ago58June 05, 202116mitJavaScript
A Node.js implementation of the elasticsearch Query DSL :construction_worker:
a year ago7apache-2.0Go
An idiomatic Go query builder for ElasticSearch
8 years ago13apache-2.0Java
A javascript shell for elasticsearch
2 years ago53December 15, 20213mitPython
A simple (Python) query builder for Elasticsearch
Wpes Lib67
3 years agogpl-2.0PHP
WordPress-Elasticsearch Lib
Q Builders48422 years ago7June 23, 20172mitJava
Type safe database agnostic query builders.
Fast Elasticsearch Query Builder47
4 years agoapache-2.0Java
A fast way to build ElasticSearch query string, even without writing implement code.
Spring Data Elasticsearch47
7 years ago2HTML
Elasticsearch Query Builder37
a month ago2mitPHP
Build query for an ElasticSearch client using a fluent interface
Alternatives To Elasticsearch Dsl
Select To Compare

Alternative Project Comparisons


Release Build Status Code Quality Code Coverage Packagist

The olvlvl/elasticsearch-dsl package provides an objective query builder for Elasticsearch. It helps you create Elasticsearch queries using the same language as you would use writing arrays by hand.

I created this library because I found using ongr-io/ElasticsearchDSL, the only other available option, very cumbersome, and I wanted an interface that would feel more natural regarding Elasticsearch language.

I've been working on this library since January, it's far from being feature complete, but I'm getting there :) If you'd like to help please submit a PR.

A simple example

Here is a simple example, take from Elasticsearch documentation. More are available in our documentation.

    "query": {
        "bool": {
            "must": [
                { "match": { "title": "Search" } },
                { "match": { "content": "Elasticsearch" } }
            "filter": [
                { "term": { "status": "published" } },
                { "range": { "publish_date": { "gte": "2015-01-01" } } }

use olvlvl\ElasticsearchDSL\Query;

$query = new Query;
    ->match('title', "Search")
    ->match('content', "Elasticsearch");
    ->term('status', 'published')
    ->range('publish_date', function (Query\Term\RangeQuery $range) {

See more examples


The package requires PHP 7.1 or later.


The recommended way to install this package is through Composer:

$ composer require olvlvl/elasticsearch-dsl

Cloning the repository

The package is available on GitHub, its repository can be cloned with the following command line:

$ git clone https://github.com/olvlvl/elasticsearch-dsl.git


You can generate the documentation for the package and its dependencies with the make doc command. The documentation is generated in the build/docs directory. ApiGen is required. The directory can later be cleaned with the make clean command.


The test suite is ran with the make test command. PHPUnit and Composer need to be globally available to run the suite. The command installs dependencies as required. The make test-coverage command runs test suite and also creates an HTML coverage report in build/coverage. The directory can later be cleaned with the make clean command.

The package is continuously tested by Travis CI.

Build Status Code Coverage


olvlvl/elasticsearch-dsl is licensed under the New BSD License - See the LICENSE file for details.

Popular Elasticsearch Projects
Popular Builder Projects
Popular Data Storage Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Command Line
Query Builder