你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
发现
分享
文章
活动
登录
搜索结果正在快递途中
ES中的terminate_after参数与sort参数的查询顺序
Elasticsearch
| 作者
NewBee
| 发布于2022年08月08日 | 阅读数:
3116
分享到:
QQ空间
新浪微博
微信
QQ好友
印象笔记
有道云笔记
在查询数据时,由于索引内的数据量过大,所以使用了terminate_after参数来限制每个分片的查询数量,但是这导致在按时间排序的时候查到数据的时间范围比查询时设的时间范围要小,所以terminate_after参数是先在每个分片随机查询预设的数量之后再进行排序么,还是按时间范围查询,只是人为截断导致的,请问这个问题有办法避免吗
没有找到相关结果
已邀请:
与内容相关的链接
提交
2 个回复
Charele
-
Cisco4321
赞同来自:
"但是这导致在按时间排序的时候查到数据的时间范围比查询时设的时间范围要小"
没明白你的意思,你加了terminate_after后,只是返回的文档数量会变少了,
应该不会出现逻辑上的错误吧。
比如你要找1985-1989之间的,难道它会返加1981的数据?
amc
-
tbd
赞同来自:
"所以terminate_after参数是先在每个分片随机查询预设的数量之后再进行排序么,还是按时间范围查询,只是人为截断导致的"
按照query条件,先收集文档,然后截断,再进行排序,保证返回数据符合查询要求,但不保证排序的顺序与全量数据查询时的排序一致
"请问这个问题有办法避免吗"
如果需要避免,可以试试预排序(index sorting),让收集文档的过程和你的排序一致,就避免了先收集再排序导致的问题
同时预排序后自带提前结束的功能,可以对比下添加terminate_after和不添加时的性能差距
不过预排序会导致写入压力增加,好处是查询快很多
terminate_after
(Optional, integer) Maximum number of documents to collect for each shard. If a query reaches this limit, Elasticsearch terminates the query early. Elasticsearch collects documents before sorting.
https://www.elastic.co/guide/e ... .html
https://www.elastic.co/guide/e ... .html
要回复问题请先
登录
或
注册
发起人
NewBee
活动推荐
Aug
15
2025 Zabbix 中国峰会
上海
·
8-15 周五
·
报名中
Oct
17
第27届 GOPS 全球运维大会暨研运数智化技术峰会 · 上海站
上海
·
10-17 周五
·
报名中
相关问题
elasticsearch scroll查询的原理没太懂
query_string查询疑问
请问查询人与人之间合作度,这种聚合查询怎么写呢?
聚合查询如何优化
es scroll查询全部数据问题
Elasticsearch查询时指定分词器
discovery.zen.ping_timeout 参数作用的疑惑和探究
Kibana中如何查询展现非重复信息的数量???例如访问日志的IP地址数量
es 数据在被修改之后 再发起查询还是会查到未修改前的数据
elasticSearch5.X javaAPI rangeQuery分区间查询,最终用了一种最low的方法凑合?不知大神们有没有好解决方案?
query+aggs查询性能问题
问题状态
最新活动:
2022-08-09 08:29
浏览:
3116
关注:
3
人
2 个回复
Charele - Cisco4321
赞同来自:
没明白你的意思,你加了terminate_after后,只是返回的文档数量会变少了,
应该不会出现逻辑上的错误吧。
比如你要找1985-1989之间的,难道它会返加1981的数据?
amc - tbd
赞同来自:
按照query条件,先收集文档,然后截断,再进行排序,保证返回数据符合查询要求,但不保证排序的顺序与全量数据查询时的排序一致
"请问这个问题有办法避免吗"
如果需要避免,可以试试预排序(index sorting),让收集文档的过程和你的排序一致,就避免了先收集再排序导致的问题
同时预排序后自带提前结束的功能,可以对比下添加terminate_after和不添加时的性能差距
不过预排序会导致写入压力增加,好处是查询快很多
terminate_after
(Optional, integer) Maximum number of documents to collect for each shard. If a query reaches this limit, Elasticsearch terminates the query early. Elasticsearch collects documents before sorting.
https://www.elastic.co/guide/e ... .html
https://www.elastic.co/guide/e ... .html