Пакет 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.
Laravel пропонує зручні методи для роботи з датами, які значно спрощують запити до бази даних. Досліджуйте, як ці інтуїтивно зрозумілі функції допомагають створювати чіткі та зрозумілі умови для роботи з часовими даними!
Чи стикалися ви з помилкою «SQLSTATE[HY000] [2002] Connection refused» під час налаштування GitHub Actions для вашого додатку на Laravel? У нашій статті ми розглянемо три поширені причини цієї помилки та надамо рішення для їх усунення. Читайте далі, щоб дізнатися, як ваш CI/CD потік може працювати бездоганно!
PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення