使用Chewy Gem获得超过10个结果 - ElasticSearch&轨道

时间:2015-09-30 20:48:52

标签: ruby-on-rails elasticsearch chewy-gem

有耐嚼的宝石,如果我跑:

MyIndex.filter{attribute1?}.count

它总会返回10次出现。

我知道这是ElasticSearch的默认设置,我已阅读this question,其中说我应该将URL上的参数size设置为一个大数字,以便全部出现。

问题是我似乎无法找到在耐寒宝石上为弹性搜索服务器设置URL参数的位置,以便在内部执行类似这样的获取请求:

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

更新

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

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

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

2 个答案:

答案 0 :(得分:3)

如果你真的只想要完整的计数,那就是:

MyIndex.query(blabbity).total_count

答案 1 :(得分:1)

您可以参考Elasticsearch's from and size params上的文档确认默认限制并查找更多信息。

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

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