Elasticsearch的TermsQuery慢查询分析和优化
前言
本篇文章主要记录业务上的一个TermsQuery优化和分析的过程和一些思考。
在使用ES的时候,经常会遇到慢查询,这时候可以利用profile进行分析,当利用profile也查看不出什么端倪时候,可以尝试通过阅读代码查看查询为什么这么慢。如下是一个我们内部业务的一个慢查询,经常出现4s左右的延时,一模一样的查询,但是延时不一样,且很难复现。
{
"from": 0,
"size": 10,
"query": {
"bool": {
"must": [
{ "term": { "field_1": {"value": "a" }}},
{ "terms": {"field_2": [ "a", "b", "c","f", "e", "f", "g", "h", "i" ]} },
{ "range": { "time": {"from": 1, "to": 10}}}