Это официальный PHP-клиент для Elasticsearch.
Загрузите последнюю версию Elasticsearch или зарегистрируйтесь для получения бесплатной пробной версии Elastic Cloud .
См. раздел «Установка» документации по началу работы.
См. раздел «Подключение» документации по началу работы.
Клиент elasticsearch-php
предлагает более 400 конечных точек для взаимодействия с Elasticsearch. Список всех этих конечных точек доступен в официальной документации API Elasticsearch.
Здесь мы сообщили об основных операциях, которые можно выполнить с клиентом: индексирование, поиск и удаление.
Этот клиент разрабатывается и выпускается вместе с сервером Elasticsearch.
Чтобы гарантировать совместимость, используйте самую последнюю версию этой библиотеки в основной версии соответствующей реализации корпоративного поиска.
Например, для Elasticsearch 7.16
используйте 7.16
этой библиотеки или выше, но не 8.0
.
Клиент Elasticsearch совместим с поддерживаемыми в настоящее время версиями PHP.
Языковые клиенты имеют прямую совместимость; это означает, что клиенты поддерживают связь с большими или равными второстепенными версиями Elasticsearch без каких-либо нарушений. Это не означает, что клиент автоматически поддерживает новые функции более новых версий Elasticsearch; это возможно только после выхода новой версии клиента. Например, версия клиента 8.12 не будет автоматически поддерживать новые функции версии Elasticsearch 8.13, для этого требуется версия клиента 8.13. Языковые клиенты Elasticsearch обратно совместимы только с дистрибутивами по умолчанию и без каких-либо гарантий.
Версия Elasticsearch | Elasticsearch-PHP-ветвь | Поддерживается |
---|---|---|
основной | основной | |
8.х | 8.х | 8.х |
7.х | 7.х | 7.17 |
Версия elasticsearch-php
8.0.0 содержит новую реализацию по сравнению с версией 7.x. Он поддерживает PSR-7 для сообщений HTTP и PSR-18 для связи клиентов HTTP.
Мы постарались максимально сократить перерывы BC в 7.x
но есть некоторые (большие) различия:
ElasticElasticsearch
Exception
, используя пространство имен ElasticElasticsearchException
. Все исключения расширяют интерфейс ElasticsearchException
, как в версии 7.x.ConnectionPool
в NodePool
. Именование connection
было неоднозначным, поскольку объекты являются узлами (хостами).Дополнительную информацию можно найти в файле BREAKING_CHANGES.
Если вам нужно имитировать клиент Elasticsearch, вам просто нужно имитировать HTTP-клиент PSR-18.
Например, вы можете использовать php-http/mock-client следующим образом:
use Elastic Elasticsearch ClientBuilder ;
use Elastic Elasticsearch Response Elasticsearch ;
use Http Mock Client ;
use Nyholm Psr7 Response ;
$ mock = new Client (); // This is the mock client
$ client = ClientBuilder:: create ()
-> setHttpClient ( $ mock )
-> build ();
// This is a PSR-7 response
$ response = new Response (
200 ,
[Elasticsearch:: HEADER_CHECK => Elasticsearch:: PRODUCT_NAME ],
' This is the body! '
);
$ mock -> addResponse ( $ response );
$ result = $ client -> info (); // Just calling an Elasticsearch endpoint
echo $ result -> asString (); // This is the body!
Мы используем ClientBuilder::setHttpClient()
для установки фиктивного клиента. Вы можете указать ответ, который хотите получить, используя функцию addResponse($response)
. Как вы можете видеть, $response
— это объект ответа PSR-7. В этом примере мы использовали объект NyholmPsr7Response
из проекта nyholm/psr7. Если вы используете PHPUnit, вы можете даже издеваться над ResponseInterface
следующим образом:
$ response = $ this -> createMock ( ' PsrHttpMessageResponseInterface ' );
Обратите внимание : мы добавили специальный заголовок в ответ HTTP. Это заголовок проверки продукта, и он необходим для обеспечения связи elasticsearch-php
с сервером Elasticsearch 8.0+.
Для получения дополнительной информации вы можете прочитать раздел Mock client документации PHP-HTTP.
Если что-то не работает должным образом, пожалуйста, откройте проблему.
Вы можете посетить форумы обсуждения сообщества Elastic.
Мы приветствуем участников проекта. Прежде чем начать, немного полезной информации...
8.0
используйте ветку 8.0
, для 8.1
используйте ветку 8.1
и так далее.master
, если вы не хотите внести свой вклад в разработку версии клиента ( master
представляет собой следующую основную версию).Заранее спасибо за ваш вклад!
Массачусетский технологический институт © Эластик