Solr 使用匹配字段提高搜索分数

Solr boosting search score with matching fields

我有一个 group 索引。一个群组有一个兴趣(群组的目的,它可以是'Study Group',或'Wine Tasting')和它被组织的位置(经纬度)值)。用户也有兴趣(多个)。

因此,当用户使用关键字搜索群组时,我想给那些兴趣匹配且离用户当前位置较近的群组打分。

使用过滤器查询和地理空间搜索将结果限制为匹配兴趣和查询中提供的距离。例如,如果您搜索 "ABC Group",但没有符合您兴趣的组,那么我得到的结果是空白。

我想要的是,return所有与搜索词匹配的组,但对匹配用户兴趣和最接近用户的组评分更高。我该怎么做?文档中的任何相关部分也会有所帮助。

我能想到的一种天真的方法如下:

假设您有查询,其中 title:ABC group,按距离排序很明显,但您需要以某种方式将用户兴趣高于其他组的组放在一起。您可以通过将所有用户的兴趣添加为一组 should clauses (so they will not filter out additional groups with different interests). Also you could try to apply some boosting(应仔细选择系数)来实现这些子句:

interest:wine^5 OR interest:study^5 OR ....等等