我希望能够使用扫描和滚动API获取查询的所有结果。
根据ES文档(https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-search-scrolling.html),size参数设置应该获取每个分片的命中数。
是否每批结果与下一批的相应滚动ID一起表示每个分片的命中数(< = size)?
如果大小<
这是否意味着扫描和滚动会忽略分片中的其余结果sizeOfResultsInShard,并移动到下一个分片?或者这是否意味着它仍然会滚动来自同一分片的下一批结果,而不是转移到另一个分片?
如果我们只获取每个分片的“大小”数量的结果,那么我是唯一一种从每个分片中获取所有结果的方法,我将BIG NUMBER设置为大小参数?不确定这个大号应该有多大!希望有一种更简单的方法来获取所有结果,而不是使用大于每个分片可能的结果数量的随机猜测。
答案 0 :(得分:0)
scroll:允许我们继续从Elasticsearch中提取批量结果,直到不再有结果为止。它有点像传统数据库中的游标。
size:size参数设置应该获取每个分片的命中数。
简而言之,Scroll搜索用于获取与查询匹配的所有文档。 Size指定应该获取每个分片的命中数,但如果涉及多个分片,则单个滚动获取的总记录数可能远大于大小。
是每批结果都有相应的滚动ID 下一批,表示每个碎片的命中数(< = size)?
是。这些代表了每个分片的下一批命中。
这是否意味着扫描和滚动会忽略其余结果 如果大小< sizeOfResultsInShard,然后移到下一个 碎片 -
不,它没有。在下一个滚动中,它将获取下一个size
个记录。如果size> remainingResults,则只会从此分片中获取remainingResults。
或者这是否意味着它仍将滚动下一批 结果来自同一个分片,而不是移动到另一个分片?
是的,直到结果用完为止。