Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Solr 6.6和Solr 7.1的fieldLengh和avgFieldLength有什么不同_Solr - Fatal编程技术网

Solr 6.6和Solr 7.1的fieldLengh和avgFieldLength有什么不同

Solr 6.6和Solr 7.1的fieldLengh和avgFieldLength有什么不同,solr,Solr,我们正在从Solr6.6升级到Solr7.1,我们看到Solr6.6和Solr7.1结果的排序和分数有很多差异 我们观察到的主要差异在于fieldLengh和avgfieldlelength参数,这些参数是根据每个字段、每个文档、每个搜索项计算的 Calculation of tfNorm in Solr 7.1.0 - tfNorm, computed as (freq * (k1 + 1)) / (freq + k1 * (1 - b + b * fieldLength / avgField

我们正在从Solr6.6升级到Solr7.1,我们看到Solr6.6和Solr7.1结果的排序和分数有很多差异

我们观察到的主要差异在于
fieldLengh
avgfieldlelength
参数,这些参数是根据每个字段、每个文档、每个搜索项计算的

Calculation of tfNorm in Solr 7.1.0 -
tfNorm, computed as (freq * (k1 + 1)) / (freq + k1 * (1 - b + b * fieldLength / avgFieldLength)) from:
**fieldLength 53272.000000000** 4087877% 4087877%
**avgFieldLength 7284.331000000** 558970% 558970%
termFreq=10.0 10.000000000 767% 767%
parameter k1 1.200000000 92% 92%
parameter b 0.750000000 58% 58%

Calculation of tfNorm for same in Solr 6.6.0 - 
tfNorm, computed as (freq * (k1 + 1)) / (freq + k1 * (1 - b + b * fieldLength / avgFieldLength)) from:
**fieldLength 65536.000000000** 5480182% 5480182%
**avgFieldLength 7284.830600000** 609164% 609164%
termFreq=10.0 10.000000000 836% 836%
parameter k1 1.200000000 100% 100%
parameter b 0.750000000 63% 63%

有人能详细说明Solr7.1在
fieldLength
averageFieldLength
计算方面有什么不同吗

如果某些文档的字段长度不同,那么默认情况下avgFieldLength是否会不同?IIRC fieldlength是一个8位浮点数,因此它并不精确-实际长度的微小变化(即空格、编码等)可能会导致fieldlength值的较大变化,如果它刚好在限制范围内。@MatsLindh-是的averagefieldlength也不同,因此对于同一文档,同一字段和同一搜索词在Solr 6.6和Solr 7.1中的分数不同,例如Solr 7.1分数-fieldLength 53272.000000000 10753569%10753569%avgFieldLength 7284.331000000 1470426%1470426%我的观点是,如果fieldLength不同,平均字段长度也会有所不同,因为它是所有字段长度值的平均值。首先,我会找到一个小字段,看看长度是否也不同,然后看看索引内容如何不同(…或者这可能是不同版本之间值编码方式的变化)。同意,我还观察到Solr 6.6与Solr7在FieldLength功能实现方面的差异,不确定它的bug是否修复了或者改进了,并且与这个问题相关-Solr 6.6实现-静态{NORM_表[0]=0;for(int i=1;i<256;i++){float NORM=SmallFloat.byte315ToFloat((byte)i);NORM_表[i]=1.0f/(NORM*NORM);}和Solr 7.1-静态{NORM_表[0]=0;for(inti=1;i<256;i++){NORM_TABLE[i]=SmallFloat.byte4point((byte)i);}}这肯定会改变以前版本的值是的-编码应该更精确,因为这是一个整数,而不是正在编码的浮点,所以我猜53272实际上更接近字段的长度?