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

Getting more than 10 results with Chewy Gem - ElasticSearch & Rails

有嚼劲gem,如果我运行:

MyIndex.filter{attribute1?}.count

它总是 return 出现 10 次。

我知道这是 ElasticSearch 的默认值,我已经阅读了 this question,它说我应该将 URL 上的参数 size 设置为一个大数字,以获得所有出现.

问题是我似乎无法找到在 chewy gem 上为对 elasticSearch 服务器的请求设置 URL 参数的位置,因此它会执行这样的获取请求一,内部:

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

更新:

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

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

我似乎得到了我预期的出现次数。现在我问,这样的做法对吗?

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

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

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

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

MyIndex.query(blabbity).total_count