стоп-слова и фразы запросы Solr - PullRequest
0 голосов
/ 28 июня 2019

Я использую Solr версии 7.4 и StopFilterFactory и хочу исключить стоп-слова, кроме случаев, когда поисковый термин находится в двойных кавычках.

например, когда я ищу "to be or not to be", я не получу никаких документов.

Я знаю, что в старой версии я могу использовать 101 enablePositionIncrements="true", но теперь она устарела.

мой managed-schema файл.

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100" multiValued="false">
    <analyzer type="index">
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
      <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
    <analyzer type="query">
      <tokenizer class="solr.StandardTokenizerFactory"/>
      <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
      <filter class="solr.SynonymGraphFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/>
      <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
  </fieldType>

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 28 июня 2019

Для этого вам может потребоваться 2 отдельных поля.

Определить field1 с типом поля, для которого в определении определен stopwordfilterfactory.

Определить field2 с типом поля без StopFilterFactory вопределение.

Поиск будет выполняться по 1-му полю, когда вы не будете искать запрос без двойных кавычек.

Seach будет выполняться по 2-му полю поля2, когда у вас будет поисковый запрос с двойными кавычками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...