1. 程式人生 > >64.root object的理解

64.root object的理解

spa 對象 mil yellow ack 修改 優點 art 字符

一、root object的理解

就是某個type對應的mapping json,包括properties,metadata_id_source_type),settingsanalyzer),其他settings(比如include_in_all等,下例中加黃色的就是root object)

PUT /my_index

{

"mappings": {

"my_type": {

"properties": {}

}

}

}

二、properties

在poperties中設置typeindexanalyzer

示例

PUT /my_index/_mapping/my_type

{

"properties": {

"title": {

"type": "text"

}

}

}

三、_source

這個選項就是保存原始的json對象

優點:

1)查詢的時候,直接可以拿到完整的document,不需要先拿document id,再發送一次請求拿document

2partial update基於_source實現

3reindex時,直接基於_source實現,不需要從數據庫(或者其他外部存儲)查詢數據再修改

4)可以基於_source定制返回

field

5debug query更容易,因為可以直接看到_source

如果不需要上述好處,可以禁用_source,這樣就不保存原始的json對象。

PUT /my_index/_mapping/my_type2

{

"_source": {"enabled": false}

}

只能是建立索引時就設置,一但建立索引後就不能再更改。

四、_all

將所有field合並串聯在一起,作為一個_all field字符串,建立索引並進行分詞。如果在搜索過程中沒指定任何field進行搜索時,就是使用_all field在搜索。也可以在新建index時把該選項設置為

false

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

64.root object的理解