我尝试在索引时间上使用文档提升,但似乎它没有任何效果。我已经为太阳黑子建立了我的模型,比如
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_value
为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 个产品在字段testtest
内具有唯一字符串。name
当我搜索这个词时,文档提升对订单没有影响。
所以我的问题是:
- 可以基于数据库字段使用每个文档索引时间提升吗?
- 文档提升对 有什么影响
q=*:*
吗? - 我该如何调试呢?
- 还是我必须指定 solr 应该涉及文档提升?