Как исправить искажение результата Solr serach почти в тех же запросах?

Вот мой тип поля Solr


<fieldType name="company_name" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
          <tokenizer class="solr.StandardTokenizerFactory"/>
          <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
          <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
      <analyzer type="query">
          <tokenizer class="solr.ClassicTokenizerFactory"/>
          <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
          <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
  </fieldType>

Если мне нужно найти документы, в которых поле company_name равно «Abibas Sports», запросите fq=company_name:Abibas Sportи fq=company_name:Abibas Sportsверните совершенно разные результаты. Самый подходящий случай fq=company_name:Abibas Sport.

Как я могу исправить проблему с символом s в конце слова. Результаты должны быть одинаковыми в каждом случае.


Первый запрос:

результат первого запроса


Второй запрос:

второй результат запроса

1 ответ

  1. Попробуйте с помощью solr.PorterStemFilterFactory

    Porter stemmer — для английского языка.

    Его процесс нормализации, который удаляет общие окончания из слов.

    Example: "riding", "rides", "horses" ==> "ride", "ride", "hors".
    

    В вашем случае Sportsбудет Sport