在我的rails应用程序中使用Thinking Sphinx,我将其设置为允许与infix
部分匹配(例如,搜索“tray”将匹配“ashtray”)。
但是,我希望完整的单词匹配具有比中缀匹配更多的权重(相关性)。
所以,如果我搜索'托盘'会返回这三个结果:“银托盘”,“烟灰缸”和“其他托盘” - 我希望“烟灰缸”成为按相关性排序时的最后结果。
有没有办法配置Sphinx来做到这一点?
答案 0 :(得分:1)
您需要定义自己的排名。以下是默认情况:
SPH_RANK_PROXIMITY_BM25 = sum(lcs*user_weight)*1000+bm25
SPH_RANK_BM25 = bm25
SPH_RANK_NONE = 1
SPH_RANK_WORDCOUNT = sum(hit_count*user_weight)
SPH_RANK_PROXIMITY = sum(lcs*user_weight)
SPH_RANK_MATCHANY = sum((word_count+(lcs-1)*max_lcs)*user_weight)
SPH_RANK_FIELDMASK = field_mask
SPH_RANK_SPH04 = sum((4*lcs+2*(min_hit_pos==1)+exact_hit)*user_weight)*1000+bm25