在尝试添加术语构面时,我面临的问题是术语被标记为单独的单词。例如,如果属性(字段)Kind
的值为medium kind of shirt
和large kind of shirt
,则字词变为 - medium
,large
,kind
, of
,shirt
。
要解决此问题,建议我更改映射以包含每个属性字段的"index": "not_analyzed"
。问题是映射是动态生成的,例如 - :
"attributes": {
"properties": {
"kind": {
"type": "string"
},
"color": {
"type": "string"
},
"size": {
"type": "string"
}
}
}
只需在"not_analyzed"
内设置"attributes"
位即可。有没有办法为attributes
字段中的每个子字段设置索引属性?
答案 0 :(得分:1)
感谢Andrei的评论,我能够弄清楚如何应用这个设置。
我在映射中添加了dynamic_templates
部分,如下所示:
"dynamic_templates": [
{
"string_template": {
"path_match": "attributes.*",
"match_mapping_type": "string",
"mapping": {
"type": "string",
"index": "not_analyzed"
}
}
}
]
这样就可以了,现在每个"string"
类型的子字段都将"index"
设置为"not_analyzed"
。这些条款不再被标记化。