1
0
您可以使用 scroll api 为您的搜索查询获取分页结果。 或者,您可以使用 search_after api 这似乎对大量结果表现更好,但它仅适用于7.x+弹性版本。 |
2
0
我不完全确定我自己没有测试过,但我认为使用 search after API 这是我们应该走的路。 你需要使用类似的东西 point in time feature ,这就是搜索后使用的。没有它,您无法保证数据库中的数据不会发生变化。如果数据发生变化,那么您的搜索结果可能会发生变化。如果这种情况发生了变化,那么“下一步”也会发生变化,这可能不再符合你想要的。 例如,如果您当前有10个搜索结果,并且您感兴趣的项目位于索引5,如果有人添加了一个将您的兴趣点移动到索引6的文档,那么天真地要求下一个项目会返回同样的结果! 时间点功能在某个时刻创建数据库的快照,因此您不必担心新的或修改过的文档会把事情搞砸。 顺便说一句,大规模使用时间点特征可能不是一个好主意(再次,在这里进行有根据的猜测)。每次调用Elasticsearch时,它都必须保留整个数据库的迷你快照(!)。 你最好将人们可以浏览的项目数量限制在较大但可管理的范围内,然后在有人浏览到最后时重新加载一个新页面。如果你最初拉取了500个产品,有人走到了最后(在我看来,这似乎不太可能),你可以重新发布搜索,向前翻页500个项目,在边界处消除重复,没有人会更聪明。 |
Hotshot399 · 如何在弹性搜索中对聚合结果进行过滤? 2 年前 |
Nandakumar M · 弹性搜索更新和刷新API 2 年前 |
Mariannah47 · 日期直方图弹性搜索中的反向嵌套聚合 2 年前 |