Ruby on rails Solr:如何获得与查询对应的所有结果
我正在使用rsolr gem将solr搜索与我的RoR应用程序集成。现在,对于每个搜索,我需要指定rows参数,这是我想要检索的结果数。为了检索与查询对应的所有结果,我将rows参数设置为前面提到的高值 但是这样做会使处理速度非常慢,我在rails日志中发现以下错误:Ruby on rails Solr:如何获得与查询对应的所有结果,ruby-on-rails,solr,Ruby On Rails,Solr,我正在使用rsolr gem将solr搜索与我的RoR应用程序集成。现在,对于每个搜索,我需要指定rows参数,这是我想要检索的结果数。为了检索与查询对应的所有结果,我将rows参数设置为前面提到的高值 但是这样做会使处理速度非常慢,我在rails日志中发现以下错误: [2014-01-11 15:51:08] ERROR WEBrick::HTTPStatus::RequestURITooLarge [2014-01-11 15:51:08] ERROR TypeError: can't co
[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'
如何解决此问题?感谢来自以下网站的:
这在大多数情况下是不切实际的。人们通常只想这样做
当他们知道他们正在处理一个索引的大小
保证结果集始终足够小,以便
可以在可控范围内进行传输,但如果
这个案例只是说明你认为什么是可管理的数量。
rows param,并在您的
假设是正确的,如果结果变大,则对结果大小设置一个合理的上限
你的假设是错误的
您的错误与RoR有关,而不是与Solr有关。它告诉您问题所在-请求的URI太大。WEBrick不是生产级web服务器,v1.9.3似乎将http请求长度限制为2083 短期解决方案?使用一个不会将您请求的URI长度限制为如此短的web服务器 然而,这只是解决方案的一部分——您所参与的过程在执行时间方面相对于结果数量将以线性或更糟糕的方式增长。结果的数量不仅影响性能,而且还影响所检索文档的大小 您是否可以分享导致每个查询返回所有结果的实现的需求