Fluent PHP Elasticsearch Query Builder — лаконічний, ланцюжковий та типобезпечний інструмент для побудови запитів

3
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 10 січня, 2026
Шукаєте зручний і типобезпечний спосіб формувати запити до Elasticsearch у Laravel‑проєкті? Пакет php-elasticsearch-builder пропонує ланцюжний, незмінний API над офіційним PHP‑клієнтом, що значно спрощує роботу з пошуком.

Пакет elasticsearch-builder для PHP пропонує лаконічний, fluent, immutable і type-safe конструктор запитів для Elasticsearch. Пакет безшовно працює з офіційним Elasticsearch PHP client і забезпечує зручний API замість ручного складання запитів:

use Elastic\Elasticsearch\ClientBuilder;
use Bonu\ElasticsearchBuilder\QueryBuilder;
use Bonu\ElasticsearchBuilder\Query\TermQuery;
use Bonu\ElasticsearchBuilder\Query\BoolQuery;
use Bonu\ElasticsearchBuilder\Query\MatchQuery;
 
$builder = new QueryBuilder('products')
    ->query(new TermQuery('ean', 'foo_bar_123')->boost(12))
    ->query(new BoolQuery()
        ->should(new MatchQuery('name', 'foo'))
        ->should(new MatchQuery('description', 'bar'))
        ->boost(5)
    )
    ->size(20);
 
$client = ClientBuilder::create()->build();
$products = $client->search($builder->build());

Розробникам часто зручніше користуватися fluent-інтерфейсом, ніж складними масивами або сирим JSON при прямому використанні клієнта:

// Using the client with JSON strings
$json = '{
    "query" : {
        "match" : {
            "testField" : "abc"
        }
    }
}';
 
$params = [
    'index' => 'my_index',
    'body'  => $json
];
 
$results = $client->search($params);

Раджу ознайомитися з Elasticsearch та PHP client docs перед використанням цього пакета. Elasticsearch — потужна платформа для просунутих пошукових можливостей, observability та інших задач.

Основні можливості

Почати роботу з пакетом можна на GitHub: php-elasticsearch-builder.

Популярні

Logomark Logotype

Оптимізація запитів до бази даних за допомогою скорочених методів Laravel

Laravel пропонує зручні методи для роботи з датами, які значно спрощують запити до бази даних. Досліджуйте, як ці інтуїтивно зрозумілі функції допомагають створювати чіткі та зрозумілі умови для роботи з часовими даними!

Logomark Logotype

"SQLSTATE[HY000] [2002] Connection refused" у Laravel в GitHub Actions

Чи стикалися ви з помилкою «SQLSTATE[HY000] [2002] Connection refused» під час налаштування GitHub Actions для вашого додатку на Laravel? У нашій статті ми розглянемо три поширені причини цієї помилки та надамо рішення для їх усунення. Читайте далі, щоб дізнатися, як ваш CI/CD потік може працювати бездоганно!

Logomark Logotype

Що нового в PHP 8.5

PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення