Elastica Query Bundle

Query builder bundle for ElasticSearch.
Alternatives To Elastica Query Bundle
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Bodybuilder1,21810558a month ago65May 21, 20229mitJavaScript
An elasticsearch query body builder :muscle:
Elastic Builder460161613 days ago58June 05, 202116mitJavaScript
A Node.js implementation of the elasticsearch Query DSL :construction_worker:
Esquery222
a year ago7apache-2.0Go
An idiomatic Go query builder for ElasticSearch
Elasticshell106
8 years ago13apache-2.0Java
A javascript shell for elasticsearch
Elasticquery78
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
:cn:Spring-Data-Elasticsearch官方文档的中文翻译版本,翻译不好请见谅,欢迎提issue
Elasticsearch Query Builder37
a month ago2mitPHP
Build query for an ElasticSearch client using a fluent interface
Alternatives To Elastica Query Bundle
Select To Compare


Alternative Project Comparisons
Readme

Elastica Query Bundle

Inspired by FOSElasticaBundle and Doctrine to create a query builder for ElasticSearch.

Installation

composer require "mapado/elastica-query-bundle:1.*"

Configuation

# app/config/config.yml
mapado_elastica_query:
    clients:
        client_name:
            host: elasticsearch.example.com
            port: 9200
            timeout: 3

    indexes:
        twitter:
            # (optional, default to 'twitter') index_name: twitter_v1
            client: client_name
            types:
                tweet: ~

    document_managers:
        tweety:
            type: mapado.elastica.type.twitter.tweet
            # data_transformer: my.model.transformer #optional, must implements Mapado\ElasticaQueryBundle\DataTransformer\DataTransformerInterface
            # query_builder_classname: Acme\\Demo\\QueryBuilder\\TweetyQueryBuilder # @see "Overide Query Builder" section

Usage

Get DocumentManager

$client = $this->get('mapado.elastica.client.client_name'); // return a \Elastica\Client object
$index = $this->get('mapado.elastica.index.twitter');       // return a \Elastica\Index object
$type = $this->get('mapado.elastica.type.twitter.tweet');   // return a \Elastica\Type object

Get elastica objects

You can fetch basic Elastica objects just by doing this:

$documentManager = $this->get('mapado.elastica.document_manager.tweety'); // return a \Mapado\ElasticaQueryBundle\DocumentManager
$queryBuilder = $documentManager->createQueryBuilder();

$queryBuilder->addQuery(new \Elastica\Query\Term(['field' => 'value']))
    ->addFilter(new \Elastica\Filter\Term(['field' => 'value']));
    ->setMaxResults(20)
    ->setFirstResults(40);

$tweets = $queryBuilder->getResult(); // return a \Mapado\Elastica\Model\SearchResult

Overide Query Builder

You can override querybuilder doing this is your config file:

mapado_elastica_query:
    # ...
    document_managers:
        tweety:
            type: mapado.elastica.type.twitter.tweet
            query_builder_classname: 'Acme\Demo\QueryBuilder\TweetyQueryBuilder'

The QueryBuilder class must inherit from Mapado\ElasticaQueryBundle\QueryBuilder

SensioLabsInsight

Popular Elasticsearch Projects
Popular Builder Projects
Popular Data Storage Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Php
Elasticsearch
Builder
Doctrine Orm
Query Builder