【发布时间】:2013-08-23 10:19:27
【问题描述】:
我尝试在索引时间上使用文档提升,但它似乎没有任何效果。我已经为太阳黑子设置了我的模型,例如
Spree::Product.class_eval do
searchable :auto_index => true, :auto_remove => true do
text :name, :boost => 2.0, stored: true
text :description, :boost => 1.2, stored: false
boost { boost_value }
end
end
boost_value 字段是数据库中的一个字段,用户可以在其中更改前端的提升。它在索引时存储(我第一次构建索引或更新产品时)。我的数据库中有大约 3600 种产品,默认为 boost_valueof 1.0。其中两个产品有不同的boost_values,一个是5.0,另一个是2.0。
但是,如果我只想从 Solr 检索所有产品,则文档提升似乎对订单或分数没有影响:
solr = ::Sunspot.new_search(Spree::Product) do |query|
query.order_by("score", "desc")
query.paginate(page: 1, per_page: Spree::Product.count)
end
solr.execute
solr.results.first
Solr 查询本身如下所示:
http://localhost:8982/solr/collection1/select?sort=score+desc&start=0&q=*:*&wt=xml&fq=type:Spree\:\:Product&rows=3600&debugQuery=true
我在末尾附加了debugQuery=true,看看分数是多少。但是没有显示分数。
当我搜索一个词时,也会发生同样的事情。例如,我有 2 个产品在 name 字段中具有唯一字符串 testtest。当我搜索这个词时,文档提升对顺序没有影响。
所以我的问题是:
- 是否可以基于数据库字段使用每个文档的索引时间提升?
- 文档提升对
q=*:*有任何影响吗? - 如何调试?
- 还是我必须指定,solr 应该涉及文档提升?
【问题讨论】:
标签: ruby-on-rails solr full-text-search sunspot