【问题标题】:Solr : How to get all results corresponding to a querySolr:如何获取与查询对应的所有结果
【发布时间】:2014-01-11 10:26:28
【问题描述】:

我正在使用 rsolr gem 将 solr 搜索与我的 RoR 应用程序集成。现在对于每次搜索,我需要指定rows 参数,这是我要检索的结果数。为了检索与查询对应的所有结果,我将 rows 参数设置为较高的值,如 in this post 所述。

但是这样做会使处理变得非常缓慢,并且我在 rails 日志中收到以下错误:

[2014-01-11 15:51:08] ERROR WEBrick::HTTPStatus::RequestURITooLarge
[2014-01-11 15:51:08] ERROR TypeError: can't convert nil into an exact number
    /home/nish/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activesupport-3.1.10/lib/active_support/core_ext/time/calculations.rb:266:in `-'
    /home/nish/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activesupport-3.1.10/lib/active_support/core_ext/time/calculations.rb:266:in `minus_with_duration'
    /home/nish/.rvm/gems/ruby-1.9.2-p320@voylla/gems/activesupport-3.1.10/lib/active_support/core_ext/time/calculations.rb:277:in `minus_with_coercion'
    /home/nish/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/webrick/accesslog.rb:42:in `setup_params'
    /home/nish/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/webrick/httpserver.rb:164:in `access_log'
    /home/nish/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/webrick/httpserver.rb:87:in `run'
    /home/nish/.rvm/rubies/ruby-1.9.2-p320/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'

我该如何解决这个问题?谢谢

【问题讨论】:

    标签: ruby-on-rails solr


    【解决方案1】:

    您的错误与 RoR 相关,而不是 Solr。它告诉你问题——请求的 URI 太大。 WEBrick 不是生产级 Web 服务器,v1.9.3 似乎将 http 请求长度限制为 2083(根据此 other SO question。)

    短期修复?使用不会将您请求的 URI 长度限制为如此短的网络服务器。

    但是,这只是修复的一部分 - 您所参与的流程将在相对于结果数量的执行时间方面以线性或更糟的方式增长。结果的数量不仅会影响性能,还会影响正在检索的文档的大小。

    您能否分享您的要求,这些要求导致每个查询都返回所有结果?

    【讨论】:

      【解决方案2】:

      来自Solr FAQ

      这在大多数情况下是不切实际的。人们通常只想做 当他们知道他们正在处理一个大小的索引时 保证结果集总是足够小,以至于它们 可以以可管理的数量进行传播——但如果这是 该案例只需指定您认为“可管理的金额”作为您的 行参数并获得两全其美的结果(当您 假设是正确的,如果结果大小变成了理智上限 你的假设是错误的)

      【讨论】:

        猜你喜欢
        • 2012-04-19
        • 1970-01-01
        • 2016-05-07
        • 1970-01-01
        • 2021-06-15
        • 2023-03-23
        • 2013-06-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多