このページは機械翻訳によるものです。内容の正確さは保証しておりません。 人力翻訳を依頼する

curl コマンドと API オペレーションを使用して Alibaba Cloud Elasticsearch クラスタを管理する

更新日時2025-01-10 21:52

オープンソースの Elasticsearch は、curl コマンドを実行するか、Kibana コンソールを使用して呼び出すことができる一連の RESTful API オペレーションを提供します。このトピックでは、curl コマンドを使用して API オペレーションを呼び出し、Alibaba Cloud Elasticsearch クラスタへのアクセス、クラスタ情報のクエリ、インデックスとドキュメントの作成、およびドキュメントの検索を行う方法について説明します。

背景情報

このトピックを参照して、curl コマンドを実行することで API オペレーションを呼び出すことができます。Kibana コンソールを使用して API オペレーションを呼び出す方法の詳細については、「Kibana コンソールにログオンする」をご参照ください。

前提条件

Alibaba Cloud Elasticsearch クラスタが存在する仮想プライベートクラウド(VPC)に、Linux オペレーティングシステムを実行する Elastic Compute Service(ECS)インスタンスが作成されていること。詳細については、「カスタム起動タブでインスタンスを作成する」をご参照ください。
重要
Elasticsearch クラスタと同じ VPC に存在する既存の ECS インスタンスを使用することもできます。

Elasticsearch クラスタへのアクセス

  1. ECS インスタンスに接続します。
    詳細については、「手順 3:ECS インスタンスに接続する」をご参照ください。
    説明
    この例では、共通ユーザーが使用されています。
  2. 次のコマンドを実行して、Elasticsearch クラスタにアクセスします。
    説明
    システムに curl command not found と表示された場合は、sudo yum install curl コマンドを実行して、ECS インスタンスに cURL をインストールする必要があります。
    curl -u <user>:<password> http://<host>:<port>
    変数説明
    変数説明
    <user>Elasticsearch クラスタへのアクセスに使用するユーザー名。elastic 以外のユーザー名を使用することをお勧めします。
    重要
    • elastic アカウントを使用して Elasticsearch クラスタにアクセスし、その後アカウントのパスワードをリセットした場合、新しいパスワードが有効になるまでに時間がかかる場合があります。この期間中は、elastic アカウントを使用してクラスタにアクセスすることはできません。そのため、Elasticsearch クラスタへのアクセスに elastic アカウントを使用しないことをお勧めします。Kibana コンソールにログオンし、必要なロールを持つユーザーを作成し、そのユーザーとして Elasticsearch クラスタにアクセスできます。詳細については、「Elasticsearch X-Pack が提供する RBAC メカニズムを使用してアクセス制御を実装する」をご参照ください。
    • Elasticsearch クラスタのバージョンに with_X-Pack が含まれている場合は、Elasticsearch クラスタにアクセスするためにユーザー名とパスワードの両方を指定する必要があります。
    <password>Elasticsearch クラスタへのアクセスに使用するパスワード。elastic アカウントのパスワードは、Elasticsearch クラスタの作成時に指定されます。パスワードを忘れた場合は、リセットできます。パスワードのリセット手順と注意事項については、「Elasticsearch クラスタのアクセス パスワードをリセットする」をご参照ください。
    <host>Elasticsearch クラスタの [内部エンドポイント]。内部エンドポイントは、Elasticsearch クラスタの 基本情報 ページから取得できます。
    <port>Elasticsearch クラスタへのアクセスに使用するポート番号。デフォルトのポート番号は [9200] です。ポート番号は、Elasticsearch クラスタの 基本情報 ページから取得できます。
    コマンド例:
    curl -u <user>:<password> http://es-cn-vxxxxx****.elasticsearch.aliyuncs.com:9200
    コマンドが正常に実行されると、次の図に示す結果が返されます。Successful response

クラスタの情報のクエリ

  • クラスタのヘルスステータスをクエリする
    curl -u <user>:<password> -XGET 'http://es-cn-vxxxxx****.elasticsearch.aliyuncs.com:9200/_cat/health?v'
    コマンドが正常に実行されると、次の図に示す結果が返されます。Query the health status of the cluster
  • クラスタ内のインデックスをクエリする
    curl -u <user>:<password> -XGET 'http://es-cn-vxxxxx****.elasticsearch.aliyuncs.com:9200/_cat/indices?v'
    コマンドが正常に実行されると、次の図に示す結果が返されます。Query indexes in the cluster

インデックスとドキュメントの作成

  • インデックスを作成する
    curl -u <user>:<password> -XPUT 'http://es-cn-vxxxxx****.elasticsearch.aliyuncs.com:9200/product_info'

    前の例では、product_info という名前のインデックスが作成されます。

    コマンドが正常に実行されると、次の図に示す結果が返されます。Create an index
  • インデックスのマッピングを設定する
    curl -u <user>:<password> -XPUT 'http://es-cn-vxxxxx****.elasticsearch.aliyuncs.com:9200/product_info/_doc/_mapping?include_type_name=true' -H 'Content-Type: application/json' -d '
    {
     "_doc":{
       "properties": {
            "productName": {"type": "text","analyzer": "ik_smart"},
            "annual_rate":{"type":"keyword"},
            "describe": {"type": "text","analyzer": "ik_smart"}
          }
      }
    }'
    コマンドが正常に実行されると、次の図に示す結果が返されます。Configure a mapping for an index

    前の例では、product_info インデックスのタイプが _doc に設定されています。インデックスには、productNameannual_rate、および describe フィールドが含まれています。 V7.0 以降の Elasticsearch クラスタを使用する場合は、クラスタ内のインデックスのタイプは _doc である必要があります。この例では、フィールドのトークナイザーも定義しています。

  • ドキュメントを作成してデータを挿入する
    • 単一のドキュメントを作成する
      curl -u <user>:<password> -XPOST 'http://es-cn-vxxxxx****.elasticsearch.aliyuncs.com:9200/product_info/_doc/1?pretty' -H 'Content-Type: application/json' -d '
      {
      "productName":"testpro",
      "annual_rate":"3.22%",
      "describe":"testpro"
      }'
      コマンドが正常に実行されると、次の図に示す結果が返されます。Create documents and insert data

      前の例では、_doc タイプの product_info インデックスに 1 という名前のドキュメントが作成され、データレコードがドキュメントに挿入されます。

    • 複数のドキュメントを作成する
      curl -u <user>:<password> -XPOST http://es-cn-vxxxxx****.elasticsearch.aliyuncs.com:9200/_bulk -H 'Content-Type: application/json' -d'
      { "index" : { "_index": "product_info", "_type" : "_doc", "_id" : "1" } }
      {"productName":"testpro","annual_rate":"3.22%","describe":"testpro"}
      { "index" : { "_index": "product_info", "_type" : "_doc", "_id" : "2" } }
      {"productName":"testpro1","annual_rate":"3.26%","describe":"testpro"}'
      コマンドが正常に実行されると、次の図に示す結果が返されます。Create multiple documents

      前の例では、_doc タイプの product_info インデックスに 12 という名前のドキュメントが作成され、それぞれのドキュメントにデータレコードが挿入されます。

ドキュメントの検索

curl -u <user>:<password> -XGET 'http://es-cn-vxxxxx****.elasticsearch.aliyuncs.com:9200/product_info/_doc/1?pretty'
コマンドが正常に実行されると、次の図に示す結果が返されます。Search for a document

前の例では、1 という名前のドキュメントが検索されます。

インデックスの削除

curl -u <user>:<password> -XDELETE 'http://es-cn-vxxxxx****.elasticsearch.aliyuncs.com:9200/product_info'
コマンドが正常に実行されると、次の図に示す結果が返されます。Delete an index

前の例では、product_info という名前のインデックスが削除されます。

説明
その他のコマンドについては、「オープンソースの Elasticsearch ドキュメント」をご参照ください。

FAQ

Windows クライアントを使用してクラスタに接続する場合、curl ツールをインストールして curl コマンドを使用して Elasticsearch クラスタにアクセスするにはどうすればよいですか?

  • 目次 (1, M)
  • 背景情報
  • 前提条件
  • Elasticsearch クラスタへのアクセス
  • クラスタの情報のクエリ
  • インデックスとドキュメントの作成
  • ドキュメントの検索
  • インデックスの削除
  • FAQ
フィードバック
phone お問い合わせ

Chat now with Alibaba Cloud Customer Service to assist you in finding the right products and services to meet your needs.

alicare alicarealicarealicare