我是 Solr/Sunspot 的新手,我确定我做错了什么。
我有sunspot_rails
1.2.1 与rails
2.3.4 一起使用(尝试了其他版本,但它们不起作用,我们希望现在不要升级 rails)
重新索引有效,我得到了结果,但搜索时间太长了。大约 25 秒对两个字段进行全文搜索,其中包含将近 78,000 个文档。
我有这个:
class Abstract < ActiveRecord::Base
searchable do
text :original_title, :headline
end
end
像这样搜索:
Abstract.search do
fulltext 'test'
paginate :page => 1, :per_page => 30
end
这是我必须继续的唯一线索:
Solr Select (25275.2ms) {:fq=>["type:Abstract"], :start=>0, :defType=>"dismax", :q=>" +(test)", :fl=>"* score", :rows=>30, :qf=>"original_title_text header_text"}
这不仅仅是一次性的第一次搜索,每次都是这样。
如果我添加更多标准(例如两个日期之间的 updated_at ),它会增加到大约 8 分钟!
我被要求注意这是在开发环境中。
更新
问题不在于 Solr。如果我访问这个:
http://localhost:8982/solr/select?indent=on&version=2.2&q=+%2B(test)&fq=type:Abstract&defType=dismax&start=0&rows=10&fl= *%2Cscore&qt=standard&wt=standard&explainOther=&hl.fl=&qf =original_title_text+headline_text
它执行相同的查询并花费极少的时间(大约 4 毫秒!)
那么为什么通过 Rails 查询要花这么长时间呢?它要么是太阳黑子,要么是 rsolr,或者正如约翰建议的那样,也许它正在启动一个新的 Solr 实例,但我认为不是这样。
我应该尝试切换到acts_as_solr 吗?我觉得现在有点过时了。
我在 sunspot 1.2.1 和 rsolr 0.12.1 上——更新的版本在这里有帮助吗?
有趣的新信息
升级到 Rails 2.3.14 将查询时间减少到 18 秒!
结果!
我现在已经用 RSolr 1.0.6 尝试了 sunspot 1.3.0,最后我得到了我正在寻找的快速响应!这需要我迁移到 Rails 2.3 的稳定版本。不好意思,我们不想升级 rails 版本,但似乎有必要。