これは、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
に送信しないでください ( master
次のメジャー バージョンを表します)。ご貢献いただきありがとうございました!
MIT © エラスティック