Я запутался, потому что подсчеты, которые вычисляет 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}&&[^\-_]]" 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}&&[^\-_\?\*]]" 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, что я и ожидал (и предполагал).
Но я не понимаю измененных оценок, поскольку поле все еще индексируется (как это было раньше), и я не ожидал, что то, будет ли поле сохранено или нет, влияет на счет. Кроме того, официальная документация, похоже, не подразумевает ничего подобного.
Я что-то упустил?