️ Dieser Client ist veraltet️ Ab Enterprise Search Version 7.13.0 leiten wir Benutzer zum neuen Enterprise Search PHP-Client weiter und verwerfen diesen Client.
Dieser Client ist mit allen Enterprise Search 7.x-Versionen kompatibel, jedoch nicht mit 8.x-Versionen. Unser Entwicklungsaufwand für dieses Projekt wird sich auf Fehlerbehebungen beschränken. Alle zukünftigen Verbesserungen werden sich auf den Enterprise Search PHP Client konzentrieren.
Danke schön! - Elastisch
Ein Erstanbieter-PHP-Client zum Erstellen hervorragender, relevanter Sucherlebnisse mit Elastic App Search.
Bei der Verwendung dieses Clients wird davon ausgegangen, dass Sie bereits über eine Instanz von Elastic App Search verfügen, die ausgeführt wird.
Weitere Informationen zu Elastic App Search finden Sie unter: https://www.elastic.co/app-search.
Sie können den Client mit Composer in Ihrem Projekt installieren:
composer require elastic/app-search
Dieser Client wird zusammen mit App Search versioniert und veröffentlicht.
Um die Kompatibilität zu gewährleisten, verwenden Sie die neueste Version dieser Bibliothek innerhalb der Hauptversion der entsprechenden App Search-Implementierung.
Verwenden Sie beispielsweise für App Search 7.3
7.3
dieser Bibliothek oder höher, jedoch nicht 8.0
.
Wenn Sie die auf Swiftype.com verfügbare SaaS-Version von App Search verwenden, sollten Sie die Version 7.5.x des Clients verwenden.
Um einen neuen Client zu instanziieren, können Sie ElasticAppSearchClientClientBuilder
verwenden:
$ apiEndpoint = ' http://localhost:3002/ ' ;
$ apiKey = ' private-XXXXXXXXXXXX ' ;
$ clientBuilder = Elastic AppSearch Client ClientBuilder :: create ( $ apiEndpoint , $ apiKey );
$ client = $ clientBuilder -> build ();
Hinweise:
Der resultierende Client wird vom Typ ElasticAppSearchClientClient
sein
Sie finden den API-Endpunkt und Ihre API-Schlüssel-URL in den Anmeldeinformationen-Abschnitten des App Search-Dashboards.
Sie können jede Art von API-Schlüssel verwenden (privat, öffentlich oder admin). Der Client löst eine Ausnahme aus, wenn Sie versuchen, eine Aktion auszuführen, die für den verwendeten Schlüssel nicht autorisiert ist.
Die meisten Methoden der API erfordern, dass Sie Zugriff auf eine Engine haben.
Um zu prüfen, ob eine Engine vorhanden ist, und deren Konfiguration abzurufen, können Sie die Methode Client::getEngine
verwenden:
$ engine = $ client -> getEngine ( ' my-engine ' );
Wenn die Engine noch nicht existiert, können Sie sie mit der Methode Client::createEngine
erstellen:
$ engine = $ client -> createEngine ( ' my-engine ' , ' en ' );
Der zweite Parameter ( $language
) ist optional. Setzen Sie es auf null
um die universal
Sprache anzuwenden.
Lesen Sie mehr über Sprachunterstützung.
Sie können die Methode Client::indexDocuments
verwenden, um einige Dokumente in der Engine zu indizieren:
$ 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 );
Das Array $indexingResults
enthält das Ergebnis der Indexierung jedes Dokuments. Sie sollten immer den Inhalt des Ergebnisses überprüfen.
Erfahren Sie mehr über die Indexierung von Dokumenten.
Sie können die Methode Client::search
verwenden, um in Ihrer Engine zu suchen:
$ searchParams = [
' page ' => [ ' current ' => 1 , ' size ' => 10 ]
];
$ searchResponse = $ client -> search ( ' my-engine ' , ' search text ' , $ searchParams );
Wenn Sie alle Dokumente abgleichen möchten, können Sie die Suchabfrage ''
als zweiten Parameter ( $queryText
) verwenden.
Der Parameter $searchRequestParams
ist optional und kann zur Verwendung erweiterter Suchfunktionen verwendet werden. Zulässige Parameter sind:
Parametername | Dokumentations-URL |
---|---|
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 |
Die Suchantwort enthält mindestens ein Metafeld und ein Ergebnisfeld, wie in diesem Beispiel gezeigt:
[
' 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 ' ]
]
]
]
]
Verfahren | Beschreibung | Dokumentation |
---|---|---|
createEngine | Erstellt eine neue Engine. Parameter: - $name (erforderlich)- $language | Endpunktdokumentation |
createMetaEngine | Erstellt eine neue Meta-Engine. Parameter: - $name (erforderlich)- $sourceEngines (erforderlich) | Endpunktdokumentation |
addMetaEngineSource | Fügen Sie einer vorhandenen Meta-Engine eine Quell-Engine hinzu. Parameter: - $engineName (erforderlich)- $sourceEngines (erforderlich) | Endpunktdokumentation |
createCuration | Erstellen Sie eine neue Kuration. Parameter: - $engineName (erforderlich)- $queries (erforderlich)- $promotedDocIds - $hiddenDocIds | Endpunktdokumentation |
createSynonymSet | Erstellen Sie einen neuen Synonymsatz. Parameter: - $engineName (erforderlich)- $synonyms (erforderlich) | Endpunktdokumentation |
deleteCuration | Eine Kuration nach ID löschen. Parameter: - $engineName (erforderlich)- $curationId (erforderlich) | Endpunktdokumentation |
deleteDocuments | Dokumente nach ID löschen. Parameter: - $engineName (erforderlich)- $documentIds (erforderlich) | Endpunktdokumentation |
deleteEngine | Löschen Sie eine Engine nach Namen. Parameter: - $engineName (erforderlich) | Endpunktdokumentation |
deleteMetaEngineSource | Löschen Sie eine Quell-Engine aus einer Meta-Engine. Parameter: - $engineName (erforderlich)- $sourceEngines (erforderlich) | Endpunktdokumentation |
deleteSynonymSet | Löschen Sie ein durch die ID festgelegtes Synonym. Parameter: - $engineName (erforderlich)- $synonymSetId (erforderlich) | Endpunktdokumentation |
getApiLogs | Das API-Protokoll zeigt API-Anfrage- und Antwortdaten auf Engine-Ebene an. Parameter: - $engineName (erforderlich)- $fromDate (erforderlich)- $toDate (erforderlich)- $currentPage - $pageSize - $query - $httpStatusFilter - $httpMethodFilter - $sortDirection | Endpunktdokumentation |
getCountAnalytics | Gibt die Anzahl der Klicks und die Gesamtzahl der Abfragen über einen Zeitraum zurück. Parameter: - $engineName (erforderlich)- $filters - $interval | Endpunktdokumentation |
getCuration | Rufen Sie eine Kuration nach ID ab. Parameter: - $engineName (erforderlich)- $curationId (erforderlich) | Endpunktdokumentation |
getDocuments | Ruft ein oder mehrere Dokumente anhand der ID ab. Parameter: - $engineName (erforderlich)- $documentIds (erforderlich) | Endpunktdokumentation |
getEngine | Ruft eine Engine nach Namen ab. Parameter: - $engineName (erforderlich) | Endpunktdokumentation |
getSchema | Rufen Sie das aktuelle Schema für die Engine ab. Parameter: - $engineName (erforderlich) | Endpunktdokumentation |
getSearchSettings | Aktuelle Sucheinstellungen für die Suchmaschine abrufen. Parameter: - $engineName (erforderlich) | Endpunktdokumentation |
getSynonymSet | Rufen Sie ein durch die ID festgelegtes Synonym ab. Parameter: - $engineName (erforderlich)- $synonymSetId (erforderlich) | Endpunktdokumentation |
getTopClicksAnalytics | Gibt die Anzahl der Klicks zurück, die ein Dokument in absteigender Reihenfolge erhalten hat. Parameter: - $engineName (erforderlich)- $query - $pageSize - $filters | Endpunktdokumentation |
getTopQueriesAnalytics | Gibt Abfrageanalysen nach Nutzungsanzahl zurück. Parameter: - $engineName (erforderlich)- $pageSize - $filters | Endpunktdokumentation |
indexDocuments | Dokumente erstellen oder aktualisieren. Parameter: - $engineName (erforderlich)- $documents (erforderlich) | Endpunktdokumentation |
listCurations | Rufen Sie verfügbare Kurationen für die Engine ab. Parameter: - $engineName (erforderlich)- $currentPage - $pageSize | Endpunktdokumentation |
listDocuments | Listen Sie alle verfügbaren Dokumente mit optionaler Paginierungsunterstützung auf. Parameter: - $engineName (erforderlich)- $currentPage - $pageSize | Endpunktdokumentation |
listEngines | Ruft alle Engines mit optionaler Paginierungsunterstützung ab. Parameter: - $currentPage - $pageSize | Endpunktdokumentation |
listSynonymSets | Verfügbare Synonymsätze für die Engine abrufen. Parameter: - $engineName (erforderlich)- $currentPage - $pageSize | Endpunktdokumentation |
logClickthrough | Senden Sie Daten über angeklickte Ergebnisse. Parameter: - $engineName (erforderlich)- $queryText (erforderlich)- $documentId (erforderlich)- $requestId - $tags | Endpunktdokumentation |
multiSearch | Führen Sie mehrere Suchvorgänge in derselben Anfrage durch. Parameter: - $engineName (erforderlich)- $queries (erforderlich) | Endpunktdokumentation |
querySuggestion | Stellen Sie relevante Abfragevorschläge für unvollständige Abfragen bereit. Parameter: - $engineName (erforderlich)- $query (erforderlich)- $fields - $size | Endpunktdokumentation |
resetSearchSettings | Setzen Sie die Sucheinstellungen für die Suchmaschine zurück. Parameter: - $engineName (erforderlich) | Endpunktdokumentation |
search | Ermöglicht Ihnen das Durchsuchen, Facettieren und Filtern Ihrer Daten. Parameter: - $engineName (erforderlich)- $queryText (erforderlich)- $searchRequestParams | Endpunktdokumentation |
updateCuration | Aktualisieren Sie eine vorhandene Kuration. Parameter: - $engineName (erforderlich)- $curationId (erforderlich)- $queries (erforderlich)- $promotedDocIds - $hiddenDocIds | Endpunktdokumentation |
updateDocuments | Teilweise Aktualisierung der Dokumente. Parameter: - $engineName (erforderlich)- $documents (erforderlich) | Endpunktdokumentation |
updateSchema | Schema für die aktuelle Engine aktualisieren. Parameter: - $engineName (erforderlich)- $schema (erforderlich) | Endpunktdokumentation |
updateSearchSettings | Aktualisieren Sie die Sucheinstellungen für die Suchmaschine. Parameter: - $engineName (erforderlich)- $searchSettings (erforderlich) | Endpunktdokumentation |
Code für die Endpunkte wird automatisch mithilfe einer benutzerdefinierten Version von OpenAPI Generator generiert.
Um Endpunkte neu zu generieren, verwenden Sie den Docker-Launcher im Paket vendor/bin
:
./vendor/bin/elastic-openapi-codegen.sh
Der benutzerdefinierte Generator wird mithilfe der folgenden Open API-Spezifikationsdatei erstellt und gestartet: resources/api/api-spec.yml
.
Anschließend können Sie die geänderte API-Spezifikationsdatei und Ihre Endpunktcodedateien festschreiben und PR senden.
Die Client-Klasse und die Readme-Datei können in einigen Fällen geändert werden. Vergessen Sie nicht, sie in Ihren Commit aufzunehmen!
Wenn etwas nicht wie erwartet funktioniert, öffnen Sie bitte ein Problem.
Am besten lesen Sie die Dokumentation.
Sie können sich die Diskussionsforen der Elastic-Community ansehen.
Wir freuen uns über Mitwirkende am Projekt. Bevor Sie beginnen, ein paar Anmerkungen ...
Apache 2.0 © Elastic
Vielen Dank an alle Mitwirkenden!