Este é o cliente PHP oficial do Elasticsearch.
Baixe a versão mais recente do Elasticsearch ou inscreva-se para uma avaliação gratuita do Elastic Cloud .
Consulte a seção Instalação da documentação de introdução.
Consulte a seção Conexão da documentação de introdução.
O cliente elasticsearch-php oferece mais de 400 endpoints para interagir com o Elasticsearch. Uma lista de todos esses endpoints está disponível na documentação oficial das APIs do Elasticsearch.
Aqui relatamos a operação básica que você pode realizar com o cliente: indexar, pesquisar e excluir.
Este cliente é versionado e lançado junto com o servidor Elasticsearch.
Para garantir a compatibilidade, use a versão mais recente desta biblioteca na versão principal da implementação do Enterprise Search correspondente.
Por exemplo, para Elasticsearch 7.16 , use 7.16 desta biblioteca ou superior, mas não 8.0 .
O cliente Elasticsearch é compatível com versões PHP mantidas atualmente.
Os clientes de idiomas são compatíveis com versões futuras; o que significa que os clientes suportam a comunicação com versões secundárias maiores ou iguais do Elasticsearch sem interrupção. Isso não significa que o cliente oferece suporte automaticamente aos novos recursos das versões mais recentes do Elasticsearch; isso só é possível após o lançamento de uma nova versão do cliente. Por exemplo, uma versão do cliente 8.12 não suportará automaticamente os novos recursos da versão 8.13 do Elasticsearch; a versão do cliente 8.13 é necessária para isso. Os clientes da linguagem Elasticsearch são compatíveis apenas com distribuições padrão e sem garantias.
| Versão do Elasticsearch | Filial Elasticsearch-PHP | Suportado |
|---|---|---|
| principal | principal | |
| 8.x | 8.x | 8.x |
| 7.x | 7.x | 7.17 |
A versão 8.0.0 do elasticsearch-php contém uma nova implementação em comparação com 7.x. Suporta PSR-7 para mensagens HTTP e PSR-18 para comunicações de cliente HTTP.
Tentamos reduzir ao máximo as quebras de BC com 7.x mas existem algumas (grandes) diferenças:
ElasticElasticsearchException , usando o namespace ElasticElasticsearchException . Todas as exceções estendem a interface ElasticsearchException , como em 7.xConnectionPool em NodePool . A nomenclatura connection era ambígua, pois os objetos são nós (hosts)Você pode dar uma olhada no arquivo BREAKING_CHANGES para obter mais informações.
Se você precisar simular o cliente Elasticsearch, basta simular um cliente HTTP PSR-18.
Por exemplo, você pode usar o php-http/mock-client da seguinte forma:
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! Estamos usando ClientBuilder::setHttpClient() para definir o cliente simulado. Você pode especificar a resposta que deseja usando a função addResponse($response) . Como você pode ver, $response é um objeto de resposta PSR-7. Neste exemplo usamos o objeto NyholmPsr7Response do projeto nyholm/psr7. Se você estiver usando PHPUnit você pode até zombar do ResponseInterface da seguinte maneira:
$ response = $ this -> createMock ( ' PsrHttpMessageResponseInterface ' ); Aviso : adicionamos um cabeçalho especial na resposta HTTP. Este é o cabeçalho de verificação do produto e é necessário para garantir que elasticsearch-php esteja se comunicando com um servidor Elasticsearch 8.0+.
Para obter mais informações, você pode ler a seção Cliente simulado da documentação do PHP-HTTP.
Se algo não estiver funcionando conforme o esperado, abra um problema.
Você pode conferir os fóruns de discussão da comunidade Elastic.
Congratulamo-nos com colaboradores do projeto. Antes de começar, algumas informações úteis...
8.0 use o branch 8.0 , para 8.1 use o branch 8.1 e assim por diante.master , a menos que queira contribuir para a versão de desenvolvimento do cliente ( master representa a próxima versão principal).Agradecemos antecipadamente pela sua contribuição!
MIT © Elástica