Sphinx 的邻近启用排名器使用稍微修改的 BM25 排名器(统计词袋)+ 强烈支持后者的最长词子字符串匹配公式,而 Solr 使用其他一些统计排名函数(不是 BM25,但类似)+如果需要单词二元组,则提升(这类似于 LWS 方法)。我认为这两者都没有模拟人类对相关性的看法,当答案中的单词不一定相邻或顺序相同时,相关性不会从悬崖上掉下来。
简单的例子:
查询:鲍勃·琼斯
身体: 。. . . 琼斯,鲍勃。. . . (看起来与我相关,但这将回退到仅统计)
-或者-
身体: 。. . . 鲍勃中间名琼斯。. . . (相同的)
我知道这样做是有代价的,但我不是唯一一个注意到如果单词乱序或被单词分隔,Solr 和 Sphinx 基本上都会退回到词袋统计排名器,在某些情况下甚至可能是停用词。
想法?如果我想将上述任何一种情况的排名高于单词仅出现在文档中某处的情况怎么办?还是我错了,Solr 或 Sphinx 是否这样做?