このドキュメントでは、Elasticsearch の Java High Level Rest Client の原則、バージョンの互換性、使用例について説明します。 Java REST クライアントを使用して、Alibaba Cloud Elasticsearch サーバーと対話できます。 Java REST クライアントは、取得と分析の実行に役立ちます。

既存のコードを Transport クライアントから REST クライアントに移行する

Transport クライアントは、Elasticsearch の最初のバージョンで公開された特別なクライアントです。 Transport クライアントは、TCP を使用して Elasticsearch インスタンスと通信します。 したがって、Transport クライアントが異なるバージョンの Elasticsearch インスタンスと通信する場合、互換性の問題が発生する可能性があります。 詳細については、 『Motivations around a new Java client』をご参照ください。

Low Level REST クライアントは、2016 年に Elasticsearch の公式 Web サイトでリリースされました。 Low Level REST クライアントは Apache HTTP クライアントに基づいており、HTTP を使用したすべてのバージョンの Elasticsearch クラスターとの通信を可能にします。 Elasticsearch は、Low Level REST クライアントに基づいた High Level Rest Client をリリースしました。

Transport クライアントは Elasticsearch 7.0 では使用されなくなり、Elasticsearch 8.0 では使用できなくなりました。 したがって、Java REST クライアントを使用することを推奨します。 REST クライアントは HTTP リクエストを使用して、リクエストとレスポンスのシリアル化の問題を処理し、ビジネス開発を容易にします。

Java REST クライアント

Elasticsearch は、次の 2 種類の Java REST クライアントをサポートしています。
  • Java Low Level REST Client:HTTP リクエストを使用して Elasticsearch クラスターとの通信を可能にします。 API は、データのエンコードとデコードを行いません。 すべての Elasticsearch バージョンと互換性があります。
  • Java High Level Rest Client :このタイプのクライアントを例として使用します。 Java High Level Rest Client は、Java Low Level REST Client に基づいています。 API 固有のメソッドを公開するように設計されています。 Java High Level Rest Client は、Elasticsearch のコアプロジェクトに依存しています。 クライアントは request オブジェクトを引数として受け取り、response オブジェクトを返します。 すべての API は、同期的または非同期的に呼び出すことができます。
    • 同期メソッドは response オブジェクトを返します。
    • 名前に async サフィックスを持つ非同期メソッドには、リスナー引数が必要です。 リスナー引数は、応答またはエラーを受信したときに続行するように、対応するメソッドに通知します。

Java High Level Rest Client 6.3.x および 6.7.x の使用方法の詳細については、「Java REST Client 6.3.x」および「Java REST Client 6.7.x」 をご参照ください。

Elasticsearch の使用方法の詳細については、こちら をクリックしてください。