Sphinx:了解大场的邻近因子排名

时间:2015-11-16 04:17:14

标签: sphinx

This文件解释了狮身人面像接近因子排名算法(参见短语接近因子部分)。

如果在该字段中多次找到该关键字,接近因子排名会给出更高的字段权重吗?

例如。使用与链接文档的引用部分类似的逻辑。对于单个实例,匹配短语权重将为2:

1) query = one two three, field = one and two three
field_phrase_weight = 2 (because 2-keyword long "two three" subphrase matched)

如果相同的短语匹配两次怎么办?重量是否会加倍?:

2) query = one two three, field = one and two three one and two three
field_phrase_weight = 4? (because 2-keyword long "two three" subphrase matched twice?)

我怀疑上述问题的答案是否定的 - 无论是否多次找到关键字/关键字子序列,sphinx都会返回相同的字段权重。如果是这种情况,如何在大型狮身人面像字段中充分利用邻近算法,如果这将返回相同的字段权重而不管内容大小?特别是考虑到了首选的sphinx算法用于搜索的是proximity_bm25排名,它非常依赖于"邻近排名" (对于多字段文档,算法的至少60%将被加权到bm25上的邻近度排名?

1 个答案:

答案 0 :(得分:0)

  

如果在该字段中多次找到该关键字,接近因子排名者会给出更高的字段权重吗?

没有。相同的田间重量将适用。

  

例如。使用与链接文档的引用部分类似的逻辑。对于单个实例,匹配短语权重将为2:

     

1)查询=一二三,字段=一,二三   field_phrase_weight = 2(因为2个关键字长“两个三”的子词匹配)

     

如果相同的短语匹配两次怎么办?重量是否会加倍?:

     

2)查询=一二三,字段=一,二三一二三   field_phrase_weight = 4? (因为2个关键字长“两个三”的子词匹配两次?)

在此示例中,第二个查询中的权重不会加倍。

  

如果不论内容大小如何返回相同的字段权重,如何充分利用大型狮身人面像字段的邻近算法?

我可以想象的唯一方法是通过结合使用接近度来为多个关键词短语提供更高的权重,同时也为算法中的BM25赋予足够的权重,以增加提供“罕见关键词出现的罕见关键词”的价值文件“因素。 Proximity_BM25排名算法的BM25部分就是为此目的而设计的。

这是proximity_bm25表达式:sum(lcs*user_weight)*1000+bm25,此算法的bm25组件逐渐变得与文档中的更多sphinx字段无关,因为制剂的sum(lcs*user_weight)*1000部分适用于每个单独的字段而等式的bm25部分适用于整个文件。

在我的10个狮身人面像场的情况下,bm25只占总体重的5% - 我将公式的bm25部分的重量提高到约20%总重量改变公式如下:

sum(lcs*user_weight)*1000+bm25*4