问题描述
如何实现对某些字段的 match
查询等同于 term
查询?
我在弹性覆盖事件中有一个更大的索引。每个事件都有一个 eventid
字段,其中包含一个随机的十六进制字符串(例如 f4fc38c993c1a8273f9c40eedc9050b7
)以及一些其他字段。 eventid
在 Elastic 中被索引为 keyword
。
如果我在 Kibana 中基于这个字段进行查询,查询经常会遇到超时,因为 Kibana 会自动为 match
生成一个 eventid:f4fc38c993c1a8273f9c40eedc9050b7
查询。
如果我使用 { "query": { "term": { "eventid": "f4fc38c993c1a8273f9c40eedc9050b7" } } }
(因此使用 term
而不是 match
查询)设置手动过滤器,我会很快得到响应。
根据我的理解,这些应该是等价的,因为 keyword
字段没有被分析,所以 match
查询应该等价于 term
查询。
我错过了什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)