️ Este cliente está obsoleto️ A partir da versão 7.13.0 do Enterprise Search, estamos direcionando os usuários para o novo cliente PHP do Enterprise Search e descontinuando esse cliente.
Este cliente será compatível com todas as liberações do Enterprise Search 7.x, mas não será compatível com as liberações 8.x. Nosso esforço de desenvolvimento neste projeto será limitado a correções de bugs. Todas as melhorias futuras serão focadas no Enterprise Search PHP Client.
Obrigado! - Elástico
Um cliente PHP próprio para criar experiências de pesquisa excelentes e relevantes com o Elastic App Search.
O uso desse cliente pressupõe que você já tenha uma instância do Elastic App Search instalada e em execução.
Você pode encontrar mais informações sobre o Elastic App Search em: https://www.elastic.co/app-search.
Você pode instalar o cliente em seu projeto usando o compositor:
composer require elastic/app-search
Este cliente é versionado e lançado junto com o App Search.
Para garantir a compatibilidade, use a versão mais recente desta biblioteca na versão principal da implementação correspondente do App Search.
Por exemplo, para App Search 7.3
, use 7.3
desta biblioteca ou superior, mas não 8.0
.
Se você estiver usando a versão SaaS disponível em swifttype.com do App Search, deverá usar a versão 7.5.x do cliente.
Para instanciar um novo cliente você pode usar ElasticAppSearchClientClientBuilder
:
$ apiEndpoint = ' http://localhost:3002/ ' ;
$ apiKey = ' private-XXXXXXXXXXXX ' ;
$ clientBuilder = Elastic AppSearch Client ClientBuilder :: create ( $ apiEndpoint , $ apiKey );
$ client = $ clientBuilder -> build ();
Notas:
O cliente resultante será do tipo ElasticAppSearchClientClient
Você pode encontrar o endpoint da API e o URL da chave da API nas seções de credenciais do painel do App Search.
Você pode usar qualquer tipo de chave API (privada, pública ou administrativa). O cliente lançará uma exceção se você tentar executar uma ação que não esteja autorizada para a chave usada.
A maioria dos métodos da API exige que você tenha acesso a um mecanismo.
Para verificar se existe um Engine e recuperar sua configuração, você pode usar o método Client::getEngine
:
$ engine = $ client -> getEngine ( ' my-engine ' );
Se o Engine ainda não existir, você pode criá-lo usando o método Client::createEngine
:
$ engine = $ client -> createEngine ( ' my-engine ' , ' en ' );
O segundo parâmetro ( $language
) é opcional. Defina-o como null
para aplicar a linguagem universal
.
Leia mais sobre suporte a idiomas.
Você pode usar o método Client::indexDocuments
para indexar alguns documentos no Engine:
$ documents = [
[ ' id ' => ' first-document ' , ' name ' => ' Document name ' , ' description ' => ' Document description ' ],
[ ' id ' => ' other-document ' , ' name ' => ' Other document name ' , ' description ' => ' Other description ' ],
];
$ indexingResults = $ client -> indexDocuments ( ' my-engine ' , $ documents );
O array $indexingResults
conterá o resultado da indexação de cada documento. Você deve sempre verificar o conteúdo do resultado.
Leia mais sobre indexação de documentos.
Você pode usar o método Client::search
para pesquisar em seu mecanismo:
$ searchParams = [
' page ' => [ ' current ' => 1 , ' size ' => 10 ]
];
$ searchResponse = $ client -> search ( ' my-engine ' , ' search text ' , $ searchParams );
Se você quiser corresponder todos os documentos, você pode usar uma consulta de pesquisa vazia ''
como segundo parâmetro ( $queryText
).
O parâmetro $searchRequestParams
é opcional e pode ser usado para usar recursos de pesquisa avançada. Os parâmetros permitidos são:
Nome do parâmetro | URL da documentação |
---|---|
page | https://swiftype.com/documentation/app-search/api/search#paging |
filters | https://swiftype.com/documentation/app-search/api/search/filters |
facets | https://swiftype.com/documentation/app-search/api/search/facets |
sort | https://swiftype.com/documentation/app-search/api/search/sorting |
boosts | https://swiftype.com/documentation/app-search/api/search/boosts |
search_fields | https://swiftype.com/documentation/app-search/api/search/search-fields |
result_fields | https://swiftype.com/documentation/app-search/api/search/result-fields |
group | https://swiftype.com/documentation/app-search/api/search/grouping |
A resposta da pesquisa conterá pelo menos um metacampo e um campo de resultados, conforme mostrado neste exemplo:
[
' meta ' => [
' warnings ' => [],
' page ' => [
' current ' => 1 ,
' total_pages ' => 1 ,
' total_results ' => 1 ,
' size ' => 10
],
' request_id ' => ' feff7cf2359a6f6da84586969ef0ca89 '
],
' results ' => [
[
' id ' => [ ' raw ' => ' first-document ' ],
' name ' => [ ' raw ' => ' Document name ' ],
' description ' => [ ' raw ' => [ ' Document description ' ]
]
]
]
]
Método | Descrição | Documentação |
---|---|---|
createEngine | Cria um novo mecanismo. Parâmetros: - $name (obrigatório)- $language | Documentação de endpoint |
createMetaEngine | Cria um novo metamecanismo. Parâmetros: - $name (obrigatório)- $sourceEngines (obrigatório) | Documentação de endpoint |
addMetaEngineSource | Adicione um mecanismo de origem a um metamecanismo existente. Parâmetros: - $engineName (obrigatório)- $sourceEngines (obrigatório) | Documentação de endpoint |
createCuration | Crie uma nova curadoria. Parâmetros: - $engineName (obrigatório)- $queries (obrigatório)- $promotedDocIds - $hiddenDocIds | Documentação de endpoint |
createSynonymSet | Crie um novo conjunto de sinônimos. Parâmetros: - $engineName (obrigatório)- $synonyms (obrigatório) | Documentação de endpoint |
deleteCuration | Exclua uma curadoria por ID. Parâmetros: - $engineName (obrigatório)- $curationId (obrigatório) | Documentação de endpoint |
deleteDocuments | Exclua documentos por id. Parâmetros: - $engineName (obrigatório)- $documentIds (obrigatório) | Documentação de endpoint |
deleteEngine | Exclua um mecanismo pelo nome. Parâmetros: - $engineName (obrigatório) | Documentação de endpoint |
deleteMetaEngineSource | Exclua um mecanismo de origem de um metamecanismo. Parâmetros: - $engineName (obrigatório)- $sourceEngines (obrigatório) | Documentação de endpoint |
deleteSynonymSet | Exclua um sinônimo definido por id. Parâmetros: - $engineName (obrigatório)- $synonymSetId (obrigatório) | Documentação de endpoint |
getApiLogs | O log da API exibe dados de solicitação e resposta da API no nível do mecanismo. Parâmetros: - $engineName (obrigatório)- $fromDate (obrigatório)- $toDate (obrigatório)- $currentPage - $pageSize - $query - $httpStatusFilter - $httpMethodFilter - $sortDirection | Documentação de endpoint |
getCountAnalytics | Retorna o número de cliques e o número total de consultas em um período. Parâmetros: - $engineName (obrigatório)- $filters - $interval | Documentação de endpoint |
getCuration | Recuperar uma curadoria por id. Parâmetros: - $engineName (obrigatório)- $curationId (obrigatório) | Documentação de endpoint |
getDocuments | Recupera um ou mais documentos por id. Parâmetros: - $engineName (obrigatório)- $documentIds (obrigatório) | Documentação de endpoint |
getEngine | Recupera um mecanismo pelo nome. Parâmetros: - $engineName (obrigatório) | Documentação de endpoint |
getSchema | Recuperar o esquema atual para o mecanismo. Parâmetros: - $engineName (obrigatório) | Documentação de endpoint |
getSearchSettings | Recuperar as configurações de pesquisa atuais do mecanismo. Parâmetros: - $engineName (obrigatório) | Documentação de endpoint |
getSynonymSet | Recuperar um sinônimo definido por id. Parâmetros: - $engineName (obrigatório)- $synonymSetId (obrigatório) | Documentação de endpoint |
getTopClicksAnalytics | Retorna o número de cliques recebidos por um documento em ordem decrescente. Parâmetros: - $engineName (obrigatório)- $query - $pageSize - $filters | Documentação de endpoint |
getTopQueriesAnalytics | Retorna análise de consultas por contagem de uso. Parâmetros: - $engineName (obrigatório)- $pageSize - $filters | Documentação de endpoint |
indexDocuments | Crie ou atualize documentos. Parâmetros: - $engineName (obrigatório)- $documents (obrigatório) | Documentação de endpoint |
listCurations | Recuperar curadorias disponíveis para o mecanismo. Parâmetros: - $engineName (obrigatório)- $currentPage - $pageSize | Documentação de endpoint |
listDocuments | Liste todos os documentos disponíveis com suporte de paginação opcional. Parâmetros: - $engineName (obrigatório)- $currentPage - $pageSize | Documentação de endpoint |
listEngines | Recupera todos os motores com suporte de paginação opcional. Parâmetros: - $currentPage - $pageSize | Documentação de endpoint |
listSynonymSets | Recuperar conjuntos de sinônimos disponíveis para o mecanismo. Parâmetros: - $engineName (obrigatório)- $currentPage - $pageSize | Documentação de endpoint |
logClickthrough | Envie dados sobre resultados clicados. Parâmetros: - $engineName (obrigatório)- $queryText (obrigatório)- $documentId (obrigatório)- $requestId - $tags | Documentação de endpoint |
multiSearch | Execute várias pesquisas na mesma solicitação. Parâmetros: - $engineName (obrigatório)- $queries (obrigatório) | Documentação de endpoint |
querySuggestion | Forneça sugestões de consulta relevantes para consultas incompletas. Parâmetros: - $engineName (obrigatório)- $query (obrigatório)- $fields - $size | Documentação de endpoint |
resetSearchSettings | Redefina as configurações de pesquisa do mecanismo. Parâmetros: - $engineName (obrigatório) | Documentação de endpoint |
search | Permite pesquisar, facetar e filtrar seus dados. Parâmetros: - $engineName (obrigatório)- $queryText (obrigatório)- $searchRequestParams | Documentação de endpoint |
updateCuration | Atualize uma curadoria existente. Parâmetros: - $engineName (obrigatório)- $curationId (obrigatório)- $queries (obrigatório)- $promotedDocIds - $hiddenDocIds | Documentação de endpoint |
updateDocuments | Atualização parcial de documentos. Parâmetros: - $engineName (obrigatório)- $documents (obrigatório) | Documentação de endpoint |
updateSchema | Atualizar esquema para o mecanismo atual. Parâmetros: - $engineName (obrigatório)- $schema (obrigatório) | Documentação de endpoint |
updateSearchSettings | Atualize as configurações de pesquisa do mecanismo. Parâmetros: - $engineName (obrigatório)- $searchSettings (obrigatório) | Documentação de endpoint |
O código para os endpoints é gerado automaticamente usando uma versão personalizada do OpenAPI Generator.
Para regenerar endpoints, use o docker launcher empacotado em vendor/bin
:
./vendor/bin/elastic-openapi-codegen.sh
O gerador personalizado será criado e iniciado usando o seguinte arquivo de especificação Open API: resources/api/api-spec.yml
.
Você pode então confirmar e PR o arquivo de especificação de API modificado e seus arquivos de código de endpoints.
A classe do cliente e o leia-me podem ser alterados em alguns casos. Não se esqueça de incluí-los no seu commit!
Se algo não estiver funcionando conforme o esperado, abra um problema.
Sua melhor aposta é ler a documentação.
Você pode conferir os fóruns de discussão da comunidade Elastic.
Congratulamo-nos com colaboradores do projeto. Antes de começar, algumas notas...
Apache 2.0 © Elástico
Obrigado a todos os colaboradores!