为了通过ElasticSearch加载所有文档索引,我通过轮胎使用以下查询。
def all
max = total
Tire.search 'my_documents' do
query { all }
size max
end.results.map { |entry| entry.to_hash }
end
其中max
分别为total
是一个计数查询,用于返回当前文档的数量。我索引了大约10,000份文件。目前,请求耗时太长。
我知道,我不应该查询这样的所有文件。这里最好的选择是什么?使用分页,如果是,我将定义每页的文档数量?
我还计划将文件的大小扩展到100,000甚至1,000,000,我还没有看到它如何扩展。
我感谢每一条评论。
理由:我这样做,因为我正在对这些数据进行计算。因此,我需要所有数据,运行计算并将结果保存回文档。
答案 0 :(得分:0)
查看滚动API,它经过高度优化,可以获取大量结果。它使用扫描搜索类型,不支持排序,但允许您提供查询以过滤要获取的文档。查看reference以了解更多相关信息。请记住,您在请求中定义的大小是每个分片;这意味着如果您有5个主分片,设置10将导致每个请求返回50个结果。