️ 이 클라이언트는 더 이상 사용되지 않습니다.️ Enterprise Search 버전 7.13.0부터 사용자를 새로운 Enterprise Search PHP 클라이언트로 안내하고 이 클라이언트를 더 이상 사용하지 않습니다.
이 클라이언트는 모든 Enterprise Search 7.x 릴리스와 호환되지만 8.x 릴리스와는 호환되지 않습니다. 이 프로젝트에 대한 우리의 개발 노력은 버그 수정으로 제한됩니다. 향후 모든 개선 사항은 Enterprise Search PHP 클라이언트에 중점을 둘 것입니다.
감사합니다! - 탄성
Elastic App Search를 통해 우수하고 관련성 높은 검색 경험을 구축하기 위한 자사 PHP 클라이언트입니다.
이 클라이언트를 사용하는 것은 Elastic App Search 인스턴스가 이미 실행 중이라고 가정합니다.
Elastic App Search에 대한 자세한 내용은 https://www.elastic.co/app-search에서 확인하실 수 있습니다.
작곡가를 사용하여 프로젝트에 클라이언트를 설치할 수 있습니다.
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 ' );
엔진이 아직 존재하지 않으면 Client::createEngine
메소드를 사용하여 엔진을 생성할 수 있습니다.
$ engine = $ client -> createEngine ( ' my-engine ' , ' en ' );
두 번째 매개변수( $language
)는 선택사항입니다. universal
언어를 적용하려면 null
로 설정하세요.
언어 지원에 대해 자세히 알아보세요.
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
매개변수는 선택사항이며 고급 검색 기능을 사용하는 데 사용할 수 있습니다. 허용되는 매개변수는 다음과 같습니다.
매개변수 이름 | 문서 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 |
검색 응답에는 다음 예에 표시된 것처럼 최소한 메타 필드와 결과 필드가 포함됩니다.
[
' 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 생성기의 사용자 지정 버전을 사용하여 자동으로 생성됩니다.
엔드포인트를 재생성하려면 vendor/bin
에 패키지된 docker laucher를 사용하십시오.
./vendor/bin/elastic-openapi-codegen.sh
사용자 정의 생성기는 Open API 사양 파일 resources/api/api-spec.yml
사용하여 빌드 및 실행됩니다.
그런 다음 수정된 api-spec 파일과 엔드포인트 코드 파일을 커밋하고 PR할 수 있습니다.
클라이언트 클래스 및 추가 정보는 경우에 따라 변경될 수 있습니다. 커밋에 포함하는 것을 잊지 마세요!
예상대로 작동하지 않는 경우 문제를 열어주세요.
가장 좋은 방법은 설명서를 읽는 것입니다.
Elastic 커뮤니티 토론 포럼을 확인해 보세요.
우리는 프로젝트에 참여하는 분들을 환영합니다. 시작하기 전에 몇 가지 참고 사항이 있습니다.
아파치 2.0 © 탄력적
모든 기여자에게 감사드립니다!