Одно из моих полей solr настроено следующим образом:
<fieldType name="text_exact" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
<analyzer type="index">
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="0" splitOnNumerics="0" preserveOriginal="1" types="wdfftypes.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="0" splitOnNumerics="0" preserveOriginal="1" types="wdfftypes.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Это работает в тех случаях, когда я не хочу вычленения, но теперь есть еще один вариант использования, который вызывает проблему, люди начинают искать следующие комбинации,
The Ivy : в этом случае возвращаются результаты только с ivy, тогда как ожидаемый результат будет с The. Я понимаю, что это из-за стоп-слова, но это способ добиться этого. Например, если они ищут «плющ» в кавычках, это должно сработать.
(Мама и я) ИЛИ ("мама и я"): в этом случае также удаляется & или возвращаются результаты, включающие и маму, и меня в какой-то части оператора.
Я в порядке, если только новые данные ведут себя правильно, но не смогут переиндексировать. Кроме того, вызовет ли изменение файла schema.xml полную репликацию?
С уважением,
Аюш