我正在使用ES 6.5,并且具有以下文档
{"id": 1, "type": "a"}
{"id": 2, "type": "a b"}
类型映射看起来像这样
"type": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
所需行为:
a
只想获取具有id的文档1
a b
只想获取具有id的文档2
我试过的
a
则得到1
和2
;如果输入=,a b
那么我只会2
我可能尝试过其他关于stackoverflow的建议解决方案,但到目前为止,没有任何工作如预期的那样。还请注意ES的版本,在较新的版本中,我们还有其他选择。
您需要将.keyword添加到类型字段。这将使用关键字分析器而不是标准分析器(请在类型字段后注意“ .keyword”)。在下面的查询中试试这个-
{
"query":{
"match":{
"type.keyword":"a b"
}
}
}
搜索结果:
"hits": [
{
"_index": "65327197",
"_type": "_doc",
"_id": "2",
"_score": 0.6931471,
"_source": {
"id": 2,
"type": "a b"
}
}
]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句