gpt4 book ai didi

solr - 当字段设置为 "stored=false"时,Solr 文档的分数会发生变化

转载 作者:行者123 更新时间:2023-12-02 04:26:17 25 4
gpt4 key购买 nike

我很困惑,因为当我不再存储特定字段时,Solr 计算的分数会发生变化。

在我的 schema.xml 中,我按以下方式使用动态字段(Solr 版本为 7.5):

<dynamicField name="*_fct_c" type="text_default" omitNorms="false"/>

类型“text_default”定义为:

<fieldType name="text_default" class="solr.TextField" positionIncrementGap="100" indexed="true" stored="true" multiValued="false" omitNorms="true">
<analyzer type="index">
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="[\p{Punct}&amp;&amp;[^\-_]]" replacement=" "/>
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.WordDelimiterGraphFilterFactory"
generateWordParts="1" generateNumberParts="1" catenateWords="0"
catenateNumbers="0" catenateAll="0" splitOnCaseChange="0"
splitOnNumerics="0" preserveOriginal="1" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
<analyzer type="query">
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="[\p{Punct}&amp;&amp;[^\-_\?\*]]" replacement=" "/>
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.WordDelimiterGraphFilterFactory"
generateWordParts="1" generateNumberParts="1" catenateWords="0"
catenateNumbers="0" catenateAll="0" splitOnCaseChange="0"
splitOnNumerics="0" preserveOriginal="1" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>

我将字段定义更改为:

<dynamicField name="*_fct_c" type="text_default" omitNorms="false" stored="false" />

在那次更改之后,我在更改字段中包含搜索词的所有文档得到不同的分数。

该字段不包含在返回的 Solr 文档中,这是我所期望的(和预期的)。

但是我不明白变化的分数,因为该字段仍然被索引(和以前一样)并且我不会期望该字段是否被存储会影响分数。官方文档似乎也没有暗示这样的事情。

我错过了什么吗?

最佳答案

我发现我的应用程序在启动时进行了一些原子更新。考虑到这个术语,我找到了以下文章 Solr Atomic Update - update documents with fields that are indexed but not stored (我想我之前没有找到它是因为标题打错了)。

这个答案解释了存储字段丢失的原因。不幸的是,我无法使用 docValues="true",因为我使用的是 TextField 类型,并且必须寻找其他解决方法。

编辑:我们选择使用 DocTransformer 作为变通方法,以便保留有问题的字段,但可以通过转换器从 Solr 文档中删除。

关于solr - 当字段设置为 "stored=false"时,Solr 文档的分数会发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54256200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com