注意:我正在使用带有 Rails 的Sunspot,但如果您不熟悉 Sunspot 的 DSL,通用的 Solr 响应仍然可以引导我朝着正确的方向前进。
我有一些类似于这些的模型:
class Book < ActiveRecord::Base
searchable do
text :title, boost: 2.0
text :content
end
end
class Article < ActiveRecord::Base
searchable do
text :title, boost: 2.0
text :content
end
end
我需要同时在所有模型中进行全文搜索以获得混合结果,但在搜索结果中应该认为文章比书籍更相关。
我当前执行搜索的代码如下。
search = Sunspot.search do
fulltext search_terms, minimum_match: 1
end
这会正确返回混合结果,但与 Book 结果相比,我需要提升 Article 结果。我想明确一点,这与首先列出所有文章结果然后列出所有书籍结果不同。根据 Solr 如何根据整体内容对结果进行排名,仍然可能会有一些组合。
我猜我需要使用一些增强功能,但不知道具体如何。
任何指针?