你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
没有找到相关结果
Charele - Cisco4321
赞同来自:
amc - tbd
要回复问题请先登录或注册
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