目前单位在查询的时候发现性能下降了好多,
{"query":
{"bool":
{"must":
[{"bool":
{"should":
[{"range":
{"mo_time":{"from":"20180919000000","to":"20180920003000"}}}]}},
{"bool":
{"should":
[{"range":
{"msg_flag":{"gte":"00","lte":"ff"}}}]}}]}},
"_source":["mo_time","msg_idx"]}
上面加粗的就是导致性能下降的查询条件,
不知道各位在字符串range的时候有什么调优的办法?不胜感激!~
{"query":
{"bool":
{"must":
[{"bool":
{"should":
[{"range":
{"mo_time":{"from":"20180919000000","to":"20180920003000"}}}]}},
{"bool":
{"should":
[{"range":
{"msg_flag":{"gte":"00","lte":"ff"}}}]}}]}},
"_source":["mo_time","msg_idx"]}
上面加粗的就是导致性能下降的查询条件,
不知道各位在字符串range的时候有什么调优的办法?不胜感激!~
3 个回复
rochy - rochy_he
赞同来自: steven123
关于更多细节,你可以参看下面的文章:https://elasticsearch.cn/article/446
kennywu76 - Wood
赞同来自: steven123
看起来你这些字符串实质是代表的16进制数值? 如果是的话,你可以这么优化:
在数据写入之前,在应用端将该字段内容转换为对应的整形数值,然后在mapping里定义为数值类型,如short,integer或者long, range查询速度会有很大提升。
这个优化的前提是ES版本必须是5.0以上的,最好是5.4+。
steven123
赞同来自: