【问题标题】:Getting more than 10 results with Chewy Gem - ElasticSearch & Rails使用 Chewy Gem - ElasticSearch & Rails 获得超过 10 个结果
【发布时间】:2017-02-28 13:26:13
【问题描述】:

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

MyIndex.filter{attribute1?}.count

它总是返回 10 次。

我知道这是 ElasticSearch 的默认设置,并且我已阅读 this question,它说我应该将 URL 上的参数 size 设置为一个大数字,以获取所有匹配项。

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

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

更新:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    MyIndex.query(blabbity).total_count

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-07-13
        • 1970-01-01
        • 1970-01-01
        • 2013-07-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多