Стоп-слова или замена слов пустой строкой на стороне запроса, обрабатывает поисковый термин как отдельные слова, а не как фразу и, таким образом, уменьшает мощность полей моей фразы
Если кто-то будет искать "детскую книгу" (без кавычек), и у нас есть документ в solr с полем категории как «детская книга», тогда он будет соответствовать.
И так, если бы у нас было поле категории, как в поле фразы pf2, с еще более сильным усилением, тогда усиление применимо к этому поиску.
Однако, когда я ищу "книгу дляchildren ", слово" for "удаляется должным образом, потому что это стоп-слово, но два оставшихся слова;«book» и «children» теперь обрабатываются индивидуально, и сила моего словосочетания категории теряется.
В анализе мы видим, что фильтр стоп-слов заменил «for» пробелом и пробеломостается там, разделяя два оставшихся слова.Поэтому я подумал, может быть, если я добавлю слово «for» в файл mapping-FoldToASCII.txt и заменим его пустой строкой, тогда «for» будет полностью проигнорировано.После этого изменения инструмент анализа действительно не обнаружил следа слова «для», но проблема все еще оставалась при поиске (было небольшое увеличение, но ничего существенного).вот тип поля:
<fieldType name="some_type" class="solr.TextField" positionIncrementGap="100" multiValued="true" omitNorms="true">
<analyzer type="index">
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-FoldToASCII.txt"/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<analyzer type="query">
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-FoldToASCII.txt"/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
</analyzer>