elasticsearch屬性_source、_all、store、index
阿新 • • 發佈:2018-11-19
1.欄位型別解釋:
原始資料寫入es中,預設在es中儲存2份內容,一份是原始文件,即_source欄位裡的內容,另一份是倒排索引,倒排索引中的資料結構是倒排記錄表,記錄詞與文件的關係。
-
_source
:原始文件。 -
_all
:它連線所有欄位的值構成一個用空格(space)分隔的大string,該string被analyzed和index,但是不被store。當你不知道不清楚document結構的時候。欄位裡包含文件的所有資訊,超級欄位,包含其它欄位的所有內容,當然也可以設定幾個欄位到_all屬性或者排出某些欄位。 -
store
:是否將原始欄位寫入索引,預設為no,如果在Lucene中,高亮功能和store屬性是否儲存息息相關,因為需要根據偏移位置到原始文件中找到關鍵字才能加上高亮的片段。在Elasticsearch,因為_source中已經儲存了一份原始文件,可以根據_source中的原始文件實現高亮,在索引中再儲存原始文件就多餘了,所以Elasticsearch預設是把store屬性設定為no。被store標記的fields被儲存在和index不同的fragment中,以便於快速檢索。雖然store佔用磁碟空間,但是減少了計算。store的值可以取yes/no或者true/false,預設值是no或者false。 -
index
:文件索引到es中,預設對所有欄位建立倒排索引(動態mapping解析的數字型別、布林型別除外),某個欄位是否生成倒排索引由欄位的index屬性控制。
型別 | 說明 |
---|---|
analyzed | 欄位被索引,會分詞,可搜尋 |
not_analyzed | 欄位被索引,不分詞,可搜尋,如人名、地名(欄位完全匹配) |
no | 不寫入索引,不被搜素 |
type
:索引index索引可能有多個型別type,每個型別有自己的對映mapping,不同型別的文件可以存放在同一個索引中,addMapping(type, mappingBuilder),
es6.x版本一個index只允許有一個type,後續版本會取消type功能