1

在我的 rails 应用程序中使用 Thinking Sphinx,我将其设置为允许部分匹配infix(例如,搜索“tray”将匹配“ashtray”)。

但是,我希望完整的单词匹配比中缀匹配具有更大的权重(相关性)。

因此,如果我对“托盘”的搜索返回这 3 个结果:“银托盘”、“烟灰缸”和“其他托盘” - 我希望“烟灰缸”成为按相关性排序时的最后一个结果。

有没有办法配置 Sphinx 来做到这一点?

4

1 回答 1

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

http://sphinxsearch.com/docs/2.0.6/weighting.html

于 2012-11-08T13:26:53.713 回答