Solr& Sphinx:如何提高相关性?
Sphinx 的接近启用排名器使用稍微修改的 BM25 排名器(统计词袋)+ 强烈支持后者的最长单词子串匹配公式,而 Solr 使用一些其他统计排名函数(不是 BM25,但类似)+如果需要的话,可以提升单词二元组(这类似于 LWS 方法)。我认为这两者都没有模拟人类对相关性的看法,即当答案中的单词不一定相邻或顺序相同时,相关性不会急剧下降。
简单示例:
查询:Bob Jones
正文: 。 。 。 。琼斯、鲍勃. 。 。 。 (看起来与我相关,但这将回退到仅统计)
- 或 -
正文: 。 。 。 。鲍勃·琼斯 中名。 。 。 。 (相同)
我知道这样做是有代价的,但我不可能是唯一一个注意到如果单词顺序混乱或分开的话,Solr 和 Sphinx 本质上都会退回到词袋统计排名器的人一个词,在某些情况下甚至可能是一个停用词。
想法?如果我想将上述任一情况的排名高于单词仅出现在文档中某处的情况,该怎么办?或者我错了,Solr 或 Sphinx 会这样做吗?
Sphinx's proximity-enabled ranker uses a slightly modified BM25 ranker (statistical bag-of-words) + a longest-word-substring match formula strongly favoring the latter, while Solr uses some other statistical ranking function (not BM25, but similar) + a boost if desired for word bigrams (this is similar to the LWS approach). I think both of these don't model a human's view of relevance, whereby relevance doesn't fall off a cliff when words in an answer aren't necessarily adjacent or in the same order.
Simple examples:
Query: Bob Jones
Body: . . . . Jones, Bob . . . . (looks relevant to me, but this will fall back to statistical-only)
-or-
Body: . . . . Bob MiddleName Jones . . . . (same)
I know there is a cost to this, but I can't be the only one who noticed that essentially both Solr and Sphinx will fall back to the bag-of-words statistical ranker if the words are out of order or separated by a word, which could even be a stop word in some cases.
Thoughts? What if I want to rank either of the cases above higher than those where the words just appear somewhere in the document? Or am I wrong and does Solr or Sphinx do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 solr 中有基于邻近度的排名。检查 http://wiki.apache.org/solr/SolrRelevancyCookbook#Term_Proximity
In solr there is proximity based ranking. check http://wiki.apache.org/solr/SolrRelevancyCookbook#Term_Proximity