이것은 Elasticsearch의 공식 PHP 클라이언트입니다.
최신 버전의 Elasticsearch를 다운로드하거나 Elastic Cloud 무료 평가판에 등록하세요 .
시작하기 설명서의 설치 섹션을 참조하세요.
시작하기 설명서의 연결 섹션을 참조하세요.
elasticsearch-php
클라이언트는 Elasticsearch와 상호작용하기 위한 400개 이상의 엔드포인트를 제공합니다. 이러한 모든 엔드포인트 목록은 Elasticsearch API의 공식 문서에서 확인할 수 있습니다.
여기서는 클라이언트로 수행할 수 있는 기본 작업인 색인화, 검색 및 삭제를 보고했습니다.
이 클라이언트는 Elasticsearch 서버와 함께 버전이 지정되고 릴리스됩니다.
호환성을 보장하려면 해당 엔터프라이즈 검색 구현의 주요 버전 내에서 이 라이브러리의 최신 버전을 사용하십시오.
예를 들어 Elasticsearch 7.16
의 경우 이 라이브러리의 7.16
이상을 사용하고 8.0
사용하지 마십시오.
Elasticsearch 클라이언트는 현재 유지 관리되는 PHP 버전과 호환됩니다.
언어 클라이언트는 이후 버전과 호환됩니다. 이는 클라이언트가 중단 없이 Elasticsearch의 더 크거나 동등한 마이너 버전과의 통신을 지원한다는 것을 의미합니다. 이는 클라이언트가 최신 Elasticsearch 버전의 새로운 기능을 자동으로 지원한다는 의미는 아닙니다. 새 클라이언트 버전이 출시된 후에만 가능합니다. 예를 들어, 8.12 클라이언트 버전은 Elasticsearch 8.13 버전의 새로운 기능을 자동으로 지원하지 않으므로 이를 위해서는 8.13 클라이언트 버전이 필요합니다. Elasticsearch 언어 클라이언트는 기본 배포판과만 역호환되며 보장되지 않습니다.
Elasticsearch 버전 | Elasticsearch-PHP 지점 | 지원됨 |
---|---|---|
기본 | 기본 | |
8.x | 8.x | 8.x |
7.x | 7.x | 7.17 |
elasticsearch-php
의 8.0.0 버전에는 7.x와 비교하여 새로운 구현이 포함되어 있습니다. HTTP 메시지용 PSR-7과 HTTP 클라이언트 통신용 PSR-18을 지원합니다.
우리는 7.x
에서 BC 중단을 최대한 줄이려고 노력했지만 몇 가지 (큰) 차이점이 있습니다.
ElasticElasticsearch
아래에 있습니다.ElasticElasticsearchException
네임스페이스를 사용하여 Exception
모델을 변경했습니다. 모든 예외는 7.x에서와 같이 ElasticsearchException
인터페이스를 확장합니다.NodePool
에서 ConnectionPool
변경했습니다. 객체가 노드(호스트)이기 때문에 connection
이름이 모호했습니다.자세한 내용은 BREAKING_CHANGES 파일을 참조하세요.
Elasticsearch 클라이언트를 모의해야 하는 경우 PSR-18 HTTP 클라이언트만 모의하면 됩니다.
예를 들어, 다음과 같이 php-http/mock-client를 사용할 수 있습니다:
use Elastic Elasticsearch ClientBuilder ;
use Elastic Elasticsearch Response Elasticsearch ;
use Http Mock Client ;
use Nyholm Psr7 Response ;
$ mock = new Client (); // This is the mock client
$ client = ClientBuilder:: create ()
-> setHttpClient ( $ mock )
-> build ();
// This is a PSR-7 response
$ response = new Response (
200 ,
[Elasticsearch:: HEADER_CHECK => Elasticsearch:: PRODUCT_NAME ],
' This is the body! '
);
$ mock -> addResponse ( $ response );
$ result = $ client -> info (); // Just calling an Elasticsearch endpoint
echo $ result -> asString (); // This is the body!
우리는 모의 클라이언트를 설정하기 위해 ClientBuilder::setHttpClient()
사용하고 있습니다. addResponse($response)
함수를 사용하여 원하는 응답을 지정할 수 있습니다. 보시다시피 $response
는 PSR-7 응답 개체입니다. 이 예에서는 nyholm/psr7 프로젝트의 NyholmPsr7Response
개체를 사용했습니다. PHPUnit을 사용하는 경우 다음과 같이 ResponseInterface
모의할 수도 있습니다.
$ response = $ this -> createMock ( ' PsrHttpMessageResponseInterface ' );
참고 : HTTP 응답에 특수 헤더를 추가했습니다. 이는 제품 확인 헤더이며, elasticsearch-php
Elasticsearch 서버 8.0+와 통신하는지 보장하는 데 필요합니다.
자세한 내용은 PHP-HTTP 문서의 모의 클라이언트 섹션을 참조하세요.
예상대로 작동하지 않는 경우 문제를 열어주세요.
Elastic 커뮤니티 토론 포럼을 확인해 보세요.
우리는 프로젝트에 참여하는 분들을 환영합니다. 시작하기 전에 몇 가지 유용한 정보를 알려드리겠습니다.
8.0
에 대한 PR을 보내려면 8.0
분기를 사용하고, 8.1
의 경우 8.1
분기를 사용하십시오.master
에 PR을 보내지 마십시오( master
다음 주요 버전을 나타냄).귀하의 기여에 미리 감사드립니다!
MIT © 탄성