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

4
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 04 березня, 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

Створення MCP-серверів на PHP

Модельний контекстний протокол (MCP) відкриває нові горизонти в інтеграції AI-додатків з PHP. Дізнайтеся, як легко створити сервер, що відповідає MCP, та які можливості відкриваються для вашого проєкту

Logomark Logotype

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

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

Logomark Logotype

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

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