️ Ce client est obsolète️ À partir de la version 7.13.0 d'Enterprise Search, nous dirigeons les utilisateurs vers le nouveau client PHP Enterprise Search et déprécions ce client.
Ce client sera compatible avec toutes les versions d'Enterprise Search 7.x, mais ne sera pas compatible avec les versions 8.x. Notre effort de développement sur ce projet se limitera à la correction de bugs. Toutes les améliorations futures seront concentrées sur le client PHP Enterprise Search.
Merci! - Élastique
Un client PHP propriétaire permettant de créer d'excellentes expériences de recherche pertinentes avec Elastic App Search.
L'utilisation de ce client suppose que vous disposez déjà d'une instance d'Elastic App Search opérationnelle.
Vous pouvez trouver plus d'informations sur Elastic App Search sur : https://www.elastic.co/app-search.
Vous pouvez installer le client dans votre projet en utilisant composer :
composer require elastic/app-search
Ce client est versionné et publié avec App Search.
Pour garantir la compatibilité, utilisez la version la plus récente de cette bibliothèque dans la version majeure de l'implémentation App Search correspondante.
Par exemple, pour App Search 7.3
, utilisez 7.3
de cette bibliothèque ou une version ultérieure, mais pas 8.0
.
Si vous utilisez la version SaaS disponible sur swiftype.com d'App Search, vous devez utiliser la version 7.5.x du client.
Pour instancier un nouveau client, vous pouvez utiliser ElasticAppSearchClientClientBuilder
:
$ apiEndpoint = ' http://localhost:3002/ ' ;
$ apiKey = ' private-XXXXXXXXXXXX ' ;
$ clientBuilder = Elastic AppSearch Client ClientBuilder :: create ( $ apiEndpoint , $ apiKey );
$ client = $ clientBuilder -> build ();
Remarques :
Le client résultant sera de type ElasticAppSearchClientClient
Vous pouvez trouver le point de terminaison de l'API et l'URL de votre clé API dans les sections d'informations d'identification du tableau de bord App Search.
Vous pouvez utiliser n'importe quel type de clé API (privée, publique ou admin). Le client lèvera une exception si vous essayez d'exécuter une action qui n'est pas autorisée pour la clé utilisée.
La plupart des méthodes de l'API nécessitent que vous ayez accès à un moteur.
Pour vérifier si un Engine existe et récupérer sa configuration, vous pouvez utiliser la méthode Client::getEngine
:
$ engine = $ client -> getEngine ( ' my-engine ' );
Si le Moteur n'existe pas encore, vous pouvez le créer en utilisant la méthode Client::createEngine
:
$ engine = $ client -> createEngine ( ' my-engine ' , ' en ' );
Le deuxième paramètre ( $language
) est facultatif. Définissez-le sur null
pour appliquer le langage universal
.
En savoir plus sur la prise en charge linguistique.
Vous pouvez utiliser la méthode Client::indexDocuments
pour indexer certains documents dans le moteur :
$ 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 );
Le tableau $indexingResults
contiendra le résultat de l'indexation de chaque document. Vous devez toujours vérifier le contenu du résultat.
En savoir plus sur l'indexation des documents.
Vous pouvez utiliser la méthode Client::search
pour effectuer une recherche dans votre moteur :
$ searchParams = [
' page ' => [ ' current ' => 1 , ' size ' => 10 ]
];
$ searchResponse = $ client -> search ( ' my-engine ' , ' search text ' , $ searchParams );
Si vous souhaitez faire correspondre tous les documents, vous pouvez utiliser une requête de recherche vide ''
comme deuxième paramètre ( $queryText
).
Le paramètre $searchRequestParams
est facultatif et peut être utilisé pour utiliser les fonctionnalités de recherche avancées. Les paramètres autorisés sont :
Nom du paramètre | URL des documents |
---|---|
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 réponse de recherche contiendra au moins un champ méta et un champ de résultats, comme indiqué dans cet exemple :
[
' 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éthode | Description | Documentation |
---|---|---|
createEngine | Crée un nouveau moteur. Paramètres : - $name (obligatoire)- $language | Documentation sur les points de terminaison |
createMetaEngine | Crée un nouveau méta-moteur. Paramètres : - $name (obligatoire)- $sourceEngines (obligatoire) | Documentation sur les points de terminaison |
addMetaEngineSource | Ajoutez un moteur source à un méta-moteur existant. Paramètres : - $engineName (obligatoire)- $sourceEngines (obligatoire) | Documentation sur les points de terminaison |
createCuration | Créez une nouvelle curation. Paramètres : - $engineName (obligatoire)- $queries (obligatoire)- $promotedDocIds - $hiddenDocIds | Documentation sur les points de terminaison |
createSynonymSet | Créez un nouvel ensemble de synonymes. Paramètres : - $engineName (obligatoire)- $synonyms (obligatoire) | Documentation sur les points de terminaison |
deleteCuration | Supprimer une curation par identifiant. Paramètres : - $engineName (obligatoire)- $curationId (obligatoire) | Documentation sur les points de terminaison |
deleteDocuments | Supprimer les documents par identifiant. Paramètres : - $engineName (obligatoire)- $documentIds (obligatoire) | Documentation sur les points de terminaison |
deleteEngine | Supprimez un moteur par son nom. Paramètres : - $engineName (obligatoire) | Documentation sur les points de terminaison |
deleteMetaEngineSource | Supprimez un moteur source d'un méta-moteur. Paramètres : - $engineName (obligatoire)- $sourceEngines (obligatoire) | Documentation sur les points de terminaison |
deleteSynonymSet | Supprimer un synonyme défini par id. Paramètres : - $engineName (obligatoire)- $synonymSetId (obligatoire) | Documentation sur les points de terminaison |
getApiLogs | Le journal API affiche les données de demande et de réponse API au niveau du moteur. Paramètres : - $engineName (obligatoire)- $fromDate (obligatoire)- $toDate (obligatoire)- $currentPage - $pageSize - $query - $httpStatusFilter - $httpMethodFilter - $sortDirection | Documentation sur les points de terminaison |
getCountAnalytics | Renvoie le nombre de clics et le nombre total de requêtes sur une période. Paramètres : - $engineName (obligatoire)- $filters - $interval | Documentation sur les points de terminaison |
getCuration | Récupérer une curation par identifiant. Paramètres : - $engineName (obligatoire)- $curationId (obligatoire) | Documentation sur les points de terminaison |
getDocuments | Récupère un ou plusieurs documents par identifiant. Paramètres : - $engineName (obligatoire)- $documentIds (obligatoire) | Documentation sur les points de terminaison |
getEngine | Récupère un moteur par son nom. Paramètres : - $engineName (obligatoire) | Documentation sur les points de terminaison |
getSchema | Récupérez le schéma actuel du moteur. Paramètres : - $engineName (obligatoire) | Documentation sur les points de terminaison |
getSearchSettings | Récupérez les paramètres de recherche actuels du moteur. Paramètres : - $engineName (obligatoire) | Documentation sur les points de terminaison |
getSynonymSet | Récupère un synonyme défini par id. Paramètres : - $engineName (obligatoire)- $synonymSetId (obligatoire) | Documentation sur les points de terminaison |
getTopClicksAnalytics | Renvoie le nombre de clics reçus par un document par ordre décroissant. Paramètres : - $engineName (obligatoire)- $query - $pageSize - $filters | Documentation sur les points de terminaison |
getTopQueriesAnalytics | Renvoie les analyses des requêtes par nombre d’utilisations. Paramètres : - $engineName (obligatoire)- $pageSize - $filters | Documentation sur les points de terminaison |
indexDocuments | Créer ou mettre à jour des documents. Paramètres : - $engineName (obligatoire)- $documents (obligatoire) | Documentation sur les points de terminaison |
listCurations | Récupérez les curations disponibles pour le moteur. Paramètres : - $engineName (obligatoire)- $currentPage - $pageSize | Documentation sur les points de terminaison |
listDocuments | Répertoriez tous les documents disponibles avec prise en charge facultative de la pagination. Paramètres : - $engineName (obligatoire)- $currentPage - $pageSize | Documentation sur les points de terminaison |
listEngines | Récupère tous les moteurs avec prise en charge facultative de la pagination. Paramètres : - $currentPage - $pageSize | Documentation sur les points de terminaison |
listSynonymSets | Récupérez les ensembles de synonymes disponibles pour le moteur. Paramètres : - $engineName (obligatoire)- $currentPage - $pageSize | Documentation sur les points de terminaison |
logClickthrough | Envoyez des données sur les résultats cliqués. Paramètres : - $engineName (obligatoire)- $queryText (obligatoire)- $documentId (obligatoire)- $requestId - $tags | Documentation sur les points de terminaison |
multiSearch | Exécutez plusieurs recherches dans la même requête. Paramètres : - $engineName (obligatoire)- $queries (obligatoire) | Documentation sur les points de terminaison |
querySuggestion | Fournissez des suggestions de requêtes pertinentes pour les requêtes incomplètes. Paramètres : - $engineName (obligatoire)- $query (obligatoire)- $fields - $size | Documentation sur les points de terminaison |
resetSearchSettings | Réinitialisez les paramètres de recherche du moteur. Paramètres : - $engineName (obligatoire) | Documentation sur les points de terminaison |
search | Vous permet de rechercher, de facettes et de filtrer vos données. Paramètres : - $engineName (obligatoire)- $queryText (obligatoire)- $searchRequestParams | Documentation sur les points de terminaison |
updateCuration | Mettre à jour une curation existante. Paramètres : - $engineName (obligatoire)- $curationId (obligatoire)- $queries (obligatoire)- $promotedDocIds - $hiddenDocIds | Documentation sur les points de terminaison |
updateDocuments | Mise à jour partielle des documents. Paramètres : - $engineName (obligatoire)- $documents (obligatoire) | Documentation sur les points de terminaison |
updateSchema | Mettre à jour le schéma du moteur actuel. Paramètres : - $engineName (obligatoire)- $schema (obligatoire) | Documentation sur les points de terminaison |
updateSearchSettings | Mettez à jour les paramètres de recherche du moteur. Paramètres : - $engineName (obligatoire)- $searchSettings (obligatoire) | Documentation sur les points de terminaison |
Le code des points de terminaison est généré automatiquement à l'aide d'une version personnalisée d'OpenAPI Generator.
Pour régénérer les points de terminaison, utilisez le lanceur Docker fourni dans vendor/bin
:
./vendor/bin/elastic-openapi-codegen.sh
Le générateur personnalisé sera construit et lancé à l'aide du fichier de spécifications Open API suivant : resources/api/api-spec.yml
.
Vous pouvez ensuite valider et PR le fichier de spécification d'API modifié et les fichiers de code de vos points de terminaison.
La classe client et le fichier Lisez-moi peuvent être modifiés dans certains cas. N'oubliez pas de les inclure dans votre commit !
Si quelque chose ne fonctionne pas comme prévu, veuillez ouvrir un problème.
Le mieux est de lire la documentation.
Vous pouvez consulter les forums de discussion de la communauté Elastic.
Nous accueillons les contributeurs au projet. Avant de commencer, quelques notes...
Apache 2.0 © Élastique
Merci à tous les contributeurs !