️ 該客戶端已被棄用️ 從企業搜尋版本 7.13.0 開始,我們將使用者引導至新的企業搜尋 PHP 用戶端並棄用此用戶端。
此用戶端將與所有 Enterprise Search 7.x 版本相容,但不與 8.x 版本相容。我們對該專案的開發工作將僅限於錯誤修復。所有未來的增強功能都將集中在企業搜尋 PHP 用戶端上。
謝謝你! - 鬆緊帶
一個第一方 PHP 用戶端,用於透過 Elastic App Search 建立出色的相關搜尋體驗。
使用此用戶端假定您已經啟動並執行了一個 Elastic App Search 執行個體。
您可以在以下網址找到有關 Elastic App Search 的更多資訊:https://www.elastic.co/app-search。
您可以使用composer在專案中安裝客戶端:
composer require elastic/app-search
該客戶端與 App Search 一起進行版本控制和發布。
為了保證相容性,請在對應 App Search 實作的主要版本中使用此程式庫的最新版本。
例如,對於 App Search 7.3
,請使用此程式庫的7.3
或更高版本,但不要使用8.0
。
如果您使用 App Search 的 swiftype.com 上提供的 SaaS 版本,則應使用客戶端的 7.5.x 版本。
若要實例化新客戶端,您可以使用ElasticAppSearchClientClientBuilder
:
$ apiEndpoint = ' http://localhost:3002/ ' ;
$ apiKey = ' private-XXXXXXXXXXXX ' ;
$ clientBuilder = Elastic AppSearch Client ClientBuilder :: create ( $ apiEndpoint , $ apiKey );
$ client = $ clientBuilder -> build ();
筆記:
產生的客戶端類型為ElasticAppSearchClientClient
您可以在 App Search 儀表板的憑證部分找到 API 端點和 API 金鑰 URL。
您可以使用任何類型的 API 金鑰(私有、公有或管理)。如果您嘗試執行未獲得所使用金鑰授權的操作,用戶端將引發異常。
大多數 API 方法都要求您有權存取引擎。
若要檢查引擎是否存在並檢索其配置,您可以使用Client::getEngine
方法:
$ engine = $ client -> getEngine ( ' my-engine ' );
如果 Engine 尚不存在,您可以使用Client::createEngine
方法來建立它:
$ engine = $ client -> createEngine ( ' my-engine ' , ' en ' );
第二個參數 ( $language
) 是可選的。將其設定為null
以應用universal
語言。
了解有關語言支援的更多資訊。
您可以使用Client::indexDocuments
方法將某些文件索引到引擎中:
$ 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 );
$indexingResults
陣列將包含每個文件的索引結果。您應該始終檢查結果的內容。
閱讀有關文件索引的更多資訊。
您可以使用Client::search
方法在您的引擎中進行搜尋:
$ searchParams = [
' page ' => [ ' current ' => 1 , ' size ' => 10 ]
];
$ searchResponse = $ client -> search ( ' my-engine ' , ' search text ' , $ searchParams );
如果您想要匹配所有文檔,您可以使用並清空搜尋查詢''
作為第二個參數 ( $queryText
)。
$searchRequestParams
參數是可選的,可用於使用進階搜尋功能。允許的參數是:
參數名稱 | 文件網址 |
---|---|
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 |
搜尋回應將至少包含一個元字段和一個結果字段,如下例所示:
[
' 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 ' ]
]
]
]
]
方法 | 描述 | 文件 |
---|---|---|
createEngine | 創建一個新引擎。 參數 : - $name (必填)- $language | 端點文檔 |
createMetaEngine | 創建一個新的元引擎。 參數 : - $name (必填)- $sourceEngines (必需) | 端點文檔 |
addMetaEngineSource | 將來源引擎新增至現有元引擎。 參數 : - $engineName (必填)- $sourceEngines (必需) | 端點文檔 |
createCuration | 創造新的策展。 參數 : - $engineName (必填)- $queries (必需)- $promotedDocIds - $hiddenDocIds | 端點文檔 |
createSynonymSet | 建立一個新的同義詞集。 參數 : - $engineName (必填)- $synonyms (必需) | 端點文檔 |
deleteCuration | 按 id 刪除策展。 參數 : - $engineName (必填)- $curationId (必填) | 端點文檔 |
deleteDocuments | 透過id刪除文件。 參數 : - $engineName (必填)- $documentIds (必需) | 端點文檔 |
deleteEngine | 按名稱刪除引擎。 參數 : - $engineName (必填) | 端點文檔 |
deleteMetaEngineSource | 從元引擎中刪除來源引擎。 參數 : - $engineName (必填)- $sourceEngines (必需) | 端點文檔 |
deleteSynonymSet | 刪除由 id 設定的同義詞。 參數 : - $engineName (必填)- $synonymSetId (必需) | 端點文檔 |
getApiLogs | API 日誌顯示引擎層級的 API 請求和回應資料。 參數 : - $engineName (必填)- $fromDate (必需)- $toDate (必填)- $currentPage - $pageSize - $query - $httpStatusFilter - $httpMethodFilter - $sortDirection | 端點文檔 |
getCountAnalytics | 傳回一段時間內的點擊次數和查詢總數。 參數 : - $engineName (必填)- $filters - $interval | 端點文檔 |
getCuration | 透過 id 檢索策展。 參數 : - $engineName (必填)- $curationId (必填) | 端點文檔 |
getDocuments | 透過 id 檢索一個或多個文件。 參數 : - $engineName (必填)- $documentIds (必需) | 端點文檔 |
getEngine | 按名稱檢索引擎。 參數 : - $engineName (必填) | 端點文檔 |
getSchema | 檢索當時引擎的目前架構。 參數 : - $engineName (必填) | 端點文檔 |
getSearchSettings | 檢索引擎的目前搜尋設定。 參數 : - $engineName (必填) | 端點文檔 |
getSynonymSet | 檢索由 id 設定的同義詞。 參數 : - $engineName (必填)- $synonymSetId (必需) | 端點文檔 |
getTopClicksAnalytics | 按降序返回文件收到的點擊次數。 參數 : - $engineName (必填)- $query - $pageSize - $filters | 端點文檔 |
getTopQueriesAnalytics | 按使用計數返回查詢分析。 參數 : - $engineName (必填)- $pageSize - $filters | 端點文檔 |
indexDocuments | 建立或更新文件。 參數 : - $engineName (必填)- $documents (必需) | 端點文檔 |
listCurations | 檢索引擎的可用策展。 參數 : - $engineName (必填)- $currentPage - $pageSize | 端點文檔 |
listDocuments | 列出所有可用文檔,並提供可選的分頁支援。 參數 : - $engineName (必填)- $currentPage - $pageSize | 端點文檔 |
listEngines | 檢索具有可選分頁支援的所有引擎。 參數 : - $currentPage - $pageSize | 端點文檔 |
listSynonymSets | 檢索引擎的可用同義詞集。 參數 : - $engineName (必填)- $currentPage - $pageSize | 端點文檔 |
logClickthrough | 發送有關點擊結果的資料。 參數 : - $engineName (必填)- $queryText (必需)- $documentId (必填)- $requestId - $tags | 端點文檔 |
multiSearch | 在同一請求中執行多個搜尋。 參數 : - $engineName (必填)- $queries (必需) | 端點文檔 |
querySuggestion | 針對不完整的查詢提供相關的查詢建議。 參數 : - $engineName (必填)- $query (必填)- $fields - $size | 端點文檔 |
resetSearchSettings | 重置引擎的搜尋設定。 參數 : - $engineName (必填) | 端點文檔 |
search | 允許您搜尋、分面和過濾資料。 參數 : - $engineName (必填)- $queryText (必需)- $searchRequestParams | 端點文檔 |
updateCuration | 更新現有的策展。 參數 : - $engineName (必填)- $curationId (必填)- $queries (必需)- $promotedDocIds - $hiddenDocIds | 端點文檔 |
updateDocuments | 文檔的部分更新。 參數 : - $engineName (必填)- $documents (必需) | 端點文檔 |
updateSchema | 更新目前引擎的架構。 參數 : - $engineName (必填)- $schema (必備) | 端點文檔 |
updateSearchSettings | 更新引擎的搜尋設定。 參數 : - $engineName (必填)- $searchSettings (必需) | 端點文檔 |
端點的程式碼是使用自訂版本的 OpenAPI Generator 自動產生的。
若要重新產生端點,請使用打包在vendor/bin
中的dockerlaucher:
./vendor/bin/elastic-openapi-codegen.sh
將使用以下開放 API 規格檔案建置和啟動自訂產生器: resources/api/api-spec.yml
。
然後,您可以提交並 PR 修改後的 api-spec 檔案和端點程式碼檔案。
在某些情況下,客戶端類別和自述文件可能會發生變更。不要忘記將它們包含在您的提交中!
如果某些內容未如預期運作,請提出問題。
最好的選擇是閱讀文件。
您可以查看 Elastic 社群討論論壇。
我們歡迎對該專案的貢獻者。在開始之前,請注意以下幾點...
Apache 2.0 © 彈性
感謝所有貢獻者!