本文目錄
1 整體結構
2 Meta
3 Field Type
4 Field Parameter
5 相關文章
官方文檔
1 整體結構
"mappings": {
"<typeName>": {
"<meta>": {
...
},
"<meta>": {
...
},
"properties": {
"<fieldName>": {
"type": "<type>",
"<parameter>": ...
},
...
}
}
}
2 Meta
詳細的Meta說明,請參考ElasticSearch Reference > Mapping > Meta-Fields官網。
此處僅簡單介紹幾個比較常用的Meta字段。
2.1 _all
"_all": {
"enabled": true / false (default)
}
若激活該功能,ES會将所有字段值拼接在一起,以空格分隔,儲存在一個大的字元串中。
在查詢時,可以通過_all來進行全字段比對,而不需要指定具體字段,例如:
"query": {
"match": {
"_all": "..."
}
}
2.2 _source
"_source": {
"enabled": true (default) / false
}
指定是否儲存使用者傳遞的原始JSON文檔資料,在查詢時,可傳回相應的資料。
3 Field Type
詳細的類型說明,請參考ElasticSearch Reference > Mapping > Field Data Type官網。
4 Field Parameter
此處僅介紹store、doc_values、analyzer和search_analyzer參數。
4.1 store
"store": true / false (default)
指明該字段值是否被單獨存儲在ES中,進而,可以獨立于_source存儲,進行單獨擷取。
單獨存儲的字段,可以在查詢時,通過以下方式指定擷取:
"stored_fields": ["<fieldname>","<fieldname>",...]
4.2 doc_values
"doc_values": true / false
指明該字段值是否以列的形式存儲在document級,進而,有助于sort、aggregations或scripting操作。
對于不同類型字段,預設值不同。
4.3 analyzer/search_analyzer
analyzer指定建立文檔時,用哪種分詞器對字段進行分詞處理;
search_analyzer指定查詢時,查詢條件中,該查詢字段值用哪種分詞器進行分詞處理;
若不指定search_analyzer,則預設使用analyzer指定分詞器,即建立文檔和查詢時,使用相同的分詞器。
5 相關文章
《ElasticSearch 學習筆記:常用内容》
《ElasticSearch 學習筆記:Multi Search》
《ElasticSearch 學習筆記:Reindex》
《ElasticSearch 學習筆記:聚合(Aggregation) - Top Hits》
官方文檔
ElasticSearch Analysis
ElasticSearch Analyzer