ドキュメントのインデックスとクエリedit

customerインデックスにインデキシングしてみましょう。ドキュメントにインデックスを付けるためには、インデックス内のどのタイプにするかをElasticsearchに指定する必要があったことを思い出してください。

次のように、「external」タイプでIDが1のcustomerインデックスにシンプルなcustomerドキュメントをインデキシングします。

PUT /customer/external/1?pretty
{
  "name": "John Doe"
}

次のような応答が返ります。

{
  "_index" : "customer",
  "_type" : "external",
  "_id" : "1",
  "_version" : 1,
  "result" : "created",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "created" : true
}

上記の応答から、新しいcustomerドキュメントがcustomerインデックスとexternalタイプ内に正常に作成されたことがわかります。さらに、ドキュメントの内部IDが、インデキシングの際に指定した1になっています。

Elasticsearchでは、ドキュメントをインデキシングする前に、インデックスを明示的に作成する必要はありません。前の例では、customerインデックスがあらかじめ存在していない場合、Elasticsearchがcustomerインデックスを自動的に作成します。

次のように、インデキシングをしたドキュメントを取得します。

GET /customer/external/1?pretty

次のような応答が返ります。

{
  "_index" : "customer",
  "_type" : "external",
  "_id" : "1",
  "_version" : 1,
  "found" : true,
  "_source" : { "name": "John Doe" }
}

要求されたIDが1のドキュメントが見つかったことを示すフィールド`found`と、直前のステップでインデキシングした完全なJSONドキュメントを返すもう1つのフィールド`_source`以外に特に変わりありません。