4
我想在elasticsearch中索引json文檔。我沒有文檔的架構,它的動態。彈性搜索動態字段存儲爲分析和not_analyzed
我需要將字段存儲爲已分析和未分析。我也需要它是動態的。
- 我們可以使用動態模板來實現嗎?
- 也有可能保持字段名稱相同的分析和不分析?
- 搜索這些字段時是否需要進行特殊處理?
我想在elasticsearch中索引json文檔。我沒有文檔的架構,它的動態。彈性搜索動態字段存儲爲分析和not_analyzed
我需要將字段存儲爲已分析和未分析。我也需要它是動態的。
您將使用動態模板是,通過爲字段(或字段的方式,例如,所有的字符串)這樣創建動態映射實現這一點:
"dynamic_templates":[
{
"template_myStringFields":{
"match":"somepattern",
"mapping":{
"type":"multi_field",
"fields":{
"{name}":{
"type":"string",
"index":"not_analyzed",
},
"_tokenized":{
"type":"string",
"index":"analyzed",
}
}
}
}
}...
然後,以搜索無論是分析還是未分析,如果您不想一次搜索兩個字段,則可以使用「模式匹配」,或者在任何字段匹配的情況下搜索「_all」字段。字段名稱相同,但帶有後綴,例如上例中的myField._tokenized。
我想我需要添加match_mapping_type:string,如果我想限制它爲字符串。 – Govind