ElasticSearch最佳入門實踐(六十三)索引管理_mapping root object
阿新 • • 發佈:2018-11-19
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