1

使用耐嚼的宝石,如果我运行:

MyIndex.filter{attribute1?}.count

它总是返回 10 次。

我知道这是一个 ElasticSearch 默认值,并且我已经阅读了这个问题,它说我应该将sizeURL 上的参数设置为一个大数字,以获取所有事件。

问题是我似乎无法找到在哪里设置 URL 参数以在耐嚼的 gem 上为 elasticSearch 服务器的请求设置 URL 参数,以便它会在内部执行这样的获取请求:

localhost:9200/foo/_search?size=500000...

更新:

嗯......在我发布我的问题几分钟后,我似乎找到了解决方案。如果我使用这样的limit功能:

MyIndex.filter{attribute1?}.limit(100000000).count

我似乎得到了我期望的发生次数。现在我问,这是正确的方法吗?

4

2 回答 2

3

如果您实际上只是想要完整的计数,那就是:

MyIndex.query(blabbity).total_count

于 2017-02-28T05:26:13.357 回答
1

您可以通过参考Elasticsearch 的 from 和 size params上的文档来确认默认限制并找到更多信息。

如果您想知道是否有一种方法可以在不指定任意大常量的情况下检索与特定查询匹配的所有结果,我认为没有。

查看chewy gem 的github repo和他们在README 中的示例,使用.limit(s) 和.offset(f) 是在chewy 最终发出的实际Elasticsearch 请求中获取from 和size 参数的正确方法。

于 2015-09-30T21:56:10.397 回答