ElasticsearchDSL
Query DSL library for Elasticsearch
Install / Use
/learn @ongr-io/ElasticsearchDSLREADME
ElasticsearchDSL
Introducing Elasticsearch DSL library to provide objective query builder for Elasticsearch bundle and elasticsearch-php client. You can easily build any Elasticsearch query and transform it to an array.
If you need any help, stack overflow is the preferred and recommended way to ask ONGR support questions.
If you like this library, help me to develop it by buying a cup of coffee
<a href="https://www.buymeacoffee.com/zIKBXRc" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/orange_img.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a>
Version matrix
| Elasticsearch version | ElasticsearchDSL version | | --------------------- | --------------------------- | | >= 7.0 | >= 7.0 | | >= 6.0, < 7.0 | >= 6.0 | | >= 5.0, < 6.0 | >= 5.0 | | >= 2.0, < 5.0 | >= 2.0 (not supported) | | >= 1.0, < 2.0 | 1.x (not supported) | | <= 0.90.x | not supported |
Documentation
The online documentation of the bundle is here
Try it!
Installation
Install library with composer:
$ composer require ongr/elasticsearch-dsl
elasticsearch-php client is defined in the composer requirements, no need to install it.
Search
Elasticsearch DSL was extracted from Elasticsearch Bundle to provide standalone query dsl for elasticsearch-php. Examples how to use it together with Elasticsearch Bundle can be found in the Elasticsearch Bundle docs.
If you dont want to use Symfony or Elasticsearch bundle, no worries, you can use it in any project together with elasticsearch-php. Here's the example:
If you are using Symfony there is also the 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:
Create search:
<?php
require 'vendor/autoload.php'; //Composer autoload
$client = ClientBuilder::create()->build(); //elasticsearch-php client
$matchAll = new ONGR\ElasticsearchDSL\Query\MatchAllQuery();
$search = new ONGR\ElasticsearchDSL\Search();
$search->addQuery($matchAll);
$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
Related Skills
node-connect
352.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
352.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
352.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。

