1. 程式人生 > >ElasticSearch最佳入門實踐(六十三)索引管理_mapping root object

ElasticSearch最佳入門實踐(六十三)索引管理_mapping root object

1、root object

就是某個type對應的mapping json,包括了properties,metadata(_id,_source,_type),settings(analyzer),其他settings(比如include_in_all)

PUT /my_index
{
  "mappings": {
    "my_type": {
      "properties": {}
    }
  }
}

2、properties

type,index,analyzer

PUT /my_index/_mapping/my_type
{
  "properties": {
    "title": {
      "type": "text"
    }
  }
}

3、_source

好處
(1)查詢的時候,直接可以拿到完整的document,不需要先拿document id,再發送一次請求拿document
(2)partial update基於_source實現
(3)reindex時,直接基於_source實現,不需要從資料庫(或者其他外部儲存)查詢資料再修改
(4)可以基於_source定製返回field
(5)debug query更容易,因為可以直接看到_source

如果不需要上述好處,可以禁用_source


PUT /my_index/_mapping/my_type2
{
  "_source": {"enabled": false}
}

4、_all

將所有field打包在一起,作為一個_all field,建立索引。沒指定任何field進行搜尋時,就是使用_all field在搜尋。

PUT /my_index/_mapping/my_type3
{
  "_all": {"enabled": false}
}

也可以在field級別設定include_in_all field,設定是否要將field的值包含在_all field中

PUT /my_index/_mapping/my_type4
{
  "properties": {
    "my_field": {
      "type": "text",
      "include_in_all": false
    }
  }
}

5、標識性metadata

_index,_type,_id