У меня возникла проблема при поиске с помощью Solr фразы, в которой есть стоп-слова. Solr отправляет результат со стоп-словом, и это не мой ожидаемый результат.
Я добавил слово "тест" в файл stopwords.txt
.
В файле schema.xml
у меня есть поле вроде
<field name="searchword" type="text" indexed="true" stored="true" />
. Я проиндексировал некоторые data, затем попытался выполнить поиск в окне браузера solr следующим образом: searchword: "test" , и я не получил результата. Затем я снова ввел фразу вроде searchword: "test data" и получил результат. Как избежать такого сценария? Если он содержит стоп-слово, Solr не должен давать никакого результата. Как остановить результат в solr, если фраза содержит стоп-слово?
Я использую следующий fieldType:
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.CommonGramsFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" type="phrase"/>
</analyzer>
</fieldType>
Мне нужно решение для Solr не дает никакого результата, пока я даю фразу, содержащую стоп-слово ( test)