️ Este cliente está en desuso️ A partir de la versión 7.13.0 de Enterprise Search, dirigiremos a los usuarios al nuevo cliente PHP de Enterprise Search y dejaremos de utilizar este cliente.
Este cliente será compatible con todas las versiones de Enterprise Search 7.x, pero no será compatible con las versiones 8.x. Nuestro esfuerzo de desarrollo en este proyecto se limitará a corregir errores. Todas las mejoras futuras se centrarán en el cliente PHP de búsqueda empresarial.
¡Gracias! - Elástico
Un cliente PHP propio para crear experiencias de búsqueda excelentes y relevantes con Elastic App Search.
El uso de este cliente supone que ya tiene una instancia de Elastic App Search en funcionamiento.
Puede encontrar más información sobre Elastic App Search en: https://www.elastic.co/app-search.
Puede instalar el cliente en su proyecto usando Composer:
composer require elastic/app-search
Este cliente tiene una versión y se lanza junto con App Search.
Para garantizar la compatibilidad, utilice la versión más reciente de esta biblioteca dentro de la versión principal de la implementación de App Search correspondiente.
Por ejemplo, para App Search 7.3
, use 7.3
de esta biblioteca o superior, pero no 8.0
.
Si está utilizando la versión SaaS disponible en swiftype.com de App Search, debe utilizar la versión 7.5.x del cliente.
Para crear una instancia de un nuevo cliente, puede usar ElasticAppSearchClientClientBuilder
:
$ apiEndpoint = ' http://localhost:3002/ ' ;
$ apiKey = ' private-XXXXXXXXXXXX ' ;
$ clientBuilder = Elastic AppSearch Client ClientBuilder :: create ( $ apiEndpoint , $ apiKey );
$ client = $ clientBuilder -> build ();
Notas:
El cliente resultante será del tipo ElasticAppSearchClientClient
Puede encontrar el punto final de API y la URL de su clave API en las secciones de credenciales del panel de App Search.
Puede utilizar cualquier tipo de clave API (privada, pública o de administrador). El cliente generará una excepción si intenta ejecutar una acción que no está autorizada para la clave utilizada.
La mayoría de los métodos de la API requieren que tengas acceso a un motor.
Para comprobar si existe un motor y recuperar su configuración, puede utilizar el método Client::getEngine
:
$ engine = $ client -> getEngine ( ' my-engine ' );
Si el motor aún no existe, puede crearlo utilizando el método Client::createEngine
:
$ engine = $ client -> createEngine ( ' my-engine ' , ' en ' );
El segundo parámetro ( $language
) es opcional. Configúrelo en null
para aplicar el lenguaje universal
.
Lea más sobre la compatibilidad con idiomas.
Puede utilizar el método Client::indexDocuments
para indexar algunos documentos en el motor:
$ 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 );
La matriz $indexingResults
contendrá el resultado de la indexación de cada documento. Siempre debes comprobar el contenido del resultado.
Lea más sobre la indexación de documentos.
Puede utilizar el método Client::search
para buscar en su motor:
$ searchParams = [
' page ' => [ ' current ' => 1 , ' size ' => 10 ]
];
$ searchResponse = $ client -> search ( ' my-engine ' , ' search text ' , $ searchParams );
Si desea hacer coincidir todos los documentos, puede utilizar y vaciar la consulta de búsqueda ''
como segundo parámetro ( $queryText
).
El parámetro $searchRequestParams
es opcional y se puede utilizar para utilizar funciones de búsqueda avanzada. Los parámetros permitidos son:
Nombre del parámetro | URL de documentación |
---|---|
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 |
La respuesta de búsqueda contendrá al menos un metacampo y un campo de resultados como se muestra en este ejemplo:
[
' 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 | Descripción | Documentación |
---|---|---|
createEngine | Crea un nuevo motor. Parámetros: - $name (obligatorio)- $language | Documentación de terminales |
createMetaEngine | Crea un nuevo metamotor. Parámetros: - $name (obligatorio)- $sourceEngines (obligatorio) | Documentación de terminales |
addMetaEngineSource | Agregue un motor de origen a un metamotor existente. Parámetros: - $engineName (obligatorio)- $sourceEngines (obligatorio) | Documentación de terminales |
createCuration | Crea una nueva curación. Parámetros: - $engineName (obligatorio)- $queries (obligatorio)- $promotedDocIds - $hiddenDocIds | Documentación de terminales |
createSynonymSet | Cree un nuevo conjunto de sinónimos. Parámetros: - $engineName (obligatorio)- $synonyms (obligatorio) | Documentación de terminales |
deleteCuration | Eliminar una curación por id. Parámetros: - $engineName (obligatorio)- $curationId (obligatorio) | Documentación de terminales |
deleteDocuments | Eliminar documentos por id. Parámetros: - $engineName (obligatorio)- $documentIds (obligatorio) | Documentación de terminales |
deleteEngine | Eliminar un motor por nombre. Parámetros: - $engineName (obligatorio) | Documentación de terminales |
deleteMetaEngineSource | Eliminar un motor de origen de un metamotor. Parámetros: - $engineName (obligatorio)- $sourceEngines (obligatorio) | Documentación de terminales |
deleteSynonymSet | Eliminar un sinónimo establecido por id. Parámetros: - $engineName (obligatorio)- $synonymSetId (obligatorio) | Documentación de terminales |
getApiLogs | El registro de API muestra datos de solicitud y respuesta de API en el nivel del motor. Parámetros: - $engineName (obligatorio)- $fromDate (obligatorio)- $toDate (obligatorio)- $currentPage - $pageSize - $query - $httpStatusFilter - $httpMethodFilter - $sortDirection | Documentación de terminales |
getCountAnalytics | Devuelve el número de clics y el número total de consultas durante un período. Parámetros: - $engineName (obligatorio)- $filters - $interval | Documentación de terminales |
getCuration | Recuperar una curación por id. Parámetros: - $engineName (obligatorio)- $curationId (obligatorio) | Documentación de terminales |
getDocuments | Recupera uno o más documentos por identificación. Parámetros: - $engineName (obligatorio)- $documentIds (obligatorio) | Documentación de terminales |
getEngine | Recupera un motor por nombre. Parámetros: - $engineName (obligatorio) | Documentación de terminales |
getSchema | Recuperar el esquema actual para el motor. Parámetros: - $engineName (obligatorio) | Documentación de terminales |
getSearchSettings | Recupera la configuración de búsqueda actual del motor. Parámetros: - $engineName (obligatorio) | Documentación de terminales |
getSynonymSet | Recupera un sinónimo establecido por id. Parámetros: - $engineName (obligatorio)- $synonymSetId (obligatorio) | Documentación de terminales |
getTopClicksAnalytics | Devuelve el número de clics recibidos por un documento en orden descendente. Parámetros: - $engineName (obligatorio)- $query - $pageSize - $filters | Documentación de terminales |
getTopQueriesAnalytics | Devuelve análisis de consultas por recuento de uso. Parámetros: - $engineName (obligatorio)- $pageSize - $filters | Documentación de terminales |
indexDocuments | Crear o actualizar documentos. Parámetros: - $engineName (obligatorio)- $documents (requerido) | Documentación de terminales |
listCurations | Recupera las selecciones disponibles para el motor. Parámetros: - $engineName (obligatorio)- $currentPage - $pageSize | Documentación de terminales |
listDocuments | Enumere todos los documentos disponibles con soporte de paginación opcional. Parámetros: - $engineName (obligatorio)- $currentPage - $pageSize | Documentación de terminales |
listEngines | Recupera todos los motores con soporte de paginación opcional. Parámetros: - $currentPage - $pageSize | Documentación de terminales |
listSynonymSets | Recuperar conjuntos de sinónimos disponibles para el motor. Parámetros: - $engineName (obligatorio)- $currentPage - $pageSize | Documentación de terminales |
logClickthrough | Envíe datos sobre los resultados en los que se hizo clic. Parámetros: - $engineName (obligatorio)- $queryText (obligatorio)- $documentId (obligatorio)- $requestId - $tags | Documentación de terminales |
multiSearch | Ejecute varias búsquedas en la misma solicitud. Parámetros: - $engineName (obligatorio)- $queries (obligatorio) | Documentación de terminales |
querySuggestion | Proporcione sugerencias de consulta relevantes para consultas incompletas. Parámetros: - $engineName (obligatorio)- $query (obligatorio)- $fields - $size | Documentación de terminales |
resetSearchSettings | Restablecer la configuración de búsqueda del motor. Parámetros: - $engineName (obligatorio) | Documentación de terminales |
search | Le permite buscar, facetar y filtrar sus datos. Parámetros: - $engineName (obligatorio)- $queryText (obligatorio)- $searchRequestParams | Documentación de terminales |
updateCuration | Actualizar una curación existente. Parámetros: - $engineName (obligatorio)- $curationId (obligatorio)- $queries (obligatorio)- $promotedDocIds - $hiddenDocIds | Documentación de terminales |
updateDocuments | Actualización parcial de documentos. Parámetros: - $engineName (obligatorio)- $documents (requerido) | Documentación de terminales |
updateSchema | Actualizar esquema para el motor actual. Parámetros: - $engineName (obligatorio)- $schema (obligatorio) | Documentación de terminales |
updateSearchSettings | Actualice la configuración de búsqueda del motor. Parámetros: - $engineName (obligatorio)- $searchSettings (obligatorio) | Documentación de terminales |
El código para los puntos finales se genera automáticamente utilizando una versión personalizada de OpenAPI Generator.
Para regenerar puntos finales, utilice el iniciador de Docker empaquetado en vendor/bin
:
./vendor/bin/elastic-openapi-codegen.sh
El generador personalizado se creará y ejecutará utilizando el siguiente archivo de especificaciones de Open API: resources/api/api-spec.yml
.
Luego puede confirmar y realizar PR el archivo api-spec modificado y los archivos de código de sus puntos finales.
La clase de cliente y el archivo Léame pueden cambiarse en algunos casos. ¡No olvides incluirlos en tu compromiso!
Si algo no funciona como se esperaba, abra un problema.
Lo mejor que puede hacer es leer la documentación.
Puede consultar los foros de discusión de la comunidad Elastic.
Damos la bienvenida a los contribuyentes al proyecto. Antes de comenzar, un par de notas...
Apache 2.0 © elástico
¡Gracias a todos los contribuyentes!