64_索引管理_mapping root object深入剖析

5765809發表於2024-10-02

課程大綱

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

相關文章