Elasticsearch-mapping

提供:Dev Guides
移動先:案内検索

Elasticsearch-マッピング

マッピングは、インデックスに保存されているドキュメントの概要です。 動的に追加されるフィールドのマッピングを制御するために、geo_pointやstringなどのデータ型と、ドキュメントおよびルールに存在するフィールドの形式を定義します。

PUT bankaccountdetails
{
   "mappings":{
      "properties":{
         "name": { "type":"text"}, "date":{ "type":"date"},
         "balance":{ "type":"double"}, "liability":{ "type":"double"}
      }
   }
 }

上記のコードを実行すると、次のように応答が得られます-

{
   "acknowledged" : true,
   "shards_acknowledged" : true,
   "index" : "bankaccountdetails"
}

フィールドデータ型

Elasticsearchは、ドキュメント内のフィールドに対してさまざまなデータ型をサポートしています。 Elasticsearchでフィールドを保存するために使用されるデータ型については、ここで詳しく説明します。

コアデータタイプ

これらは、テキスト、キーワード、日付、long、double、boolean、またはipなどの基本的なデータ型であり、ほとんどすべてのシステムでサポートされています。

複雑なデータ型

これらのデータ型は、コアデータ型の組み合わせです。 これらには、配列、JSONオブジェクト、ネストされたデータ型が含まれます。 ネストされたデータ型の例を以下に示します&minus

POST/tabletennis/_doc/1
{
   "group" : "players",
   "user" : [
      {
         "first" : "dave", "last" : "jones"
      },
      {
         "first" : "kevin", "last" : "morris"
      }
   ]
}

上記のコードを実行すると、次のように応答が得られます-

{
   "_index" : "tabletennis",
   "_type" : "_doc",
   "_id" : "1",
   _version" : 2,
   "result" : "updated",
   "_shards" : {
      "total" : 2,
      "successful" : 1,
      "failed" : 0
   },
   "_seq_no" : 1,
   "_primary_term" : 1
}

別のサンプルコードは以下に示されています-

POST/accountdetails/_doc/1
{
   "from_acc":"7056443341", "to_acc":"7032460534",
   "date":"11/1/2016", "amount":10000
}

上記のコードを実行すると、次のように応答が得られます-

{  "_index" : "accountdetails",
   "_type" : "_doc",
   "_id" : "1",
   "_version" : 1,
   "result" : "created",
   "_shards" : {
      "total" : 2,
      "successful" : 1,
      "failed" : 0
   },
   "_seq_no" : 1,
   "_primary_term" : 1
}

次のコマンドを使用して、上記のドキュメントを確認できます-

GET/accountdetails/_mappings?include_type_name=false

マッピングタイプの削除

Elasticsearch 7.0.0以降で作成されたインデックスは、_default_マッピングを受け入れなくなりました。 6.xで作成されたインデックスは、Elasticsearch 6.xで以前と同様に機能し続けます。 タイプは、7.0のAPIで非推奨になりました。