Elasticsearch 中匹配与术语查询的性能?

Sho*_*iri 2 elasticsearch elasticsearch-dsl

我在我的项目中使用了很多match查询。现在,我刚刚面临termElasticsearch 中的查询。如果指定了查询的关键字,则术语查询似乎会更快。现在我有一个问题..我应该重构我的代码(很多)并使用 term 而不是 match 吗?使用 term 的性能比 match 好多少?

在我的查询中使用术语:

main_query["query"]["bool"]["must"].append({"term":{object[..]:object[...]}})
Run Code Online (Sandbox Code Playgroud)

在我的查询中使用匹配查询:

main_query["query"]["bool"]["must"].append({"match":{object[..]:object[...]}})
Run Code Online (Sandbox Code Playgroud)

Val*_*Val 5

由于显而易见的原因,Elastic 不鼓励对字段使用term查询(分析!!),但是如果您知道需要查询字段(未分析!!),那么一定要使用查询而不是,因为除了查询之外,查询还做了很多事情分析输入并最终最终执行查询,因为它注意到查询的字段是一个字段。textkeywordterm/termsmatchmatchtermkeyword