Проверка орфографии Solr не работает, несмотря на конфигурацию - PullRequest
1 голос
/ 08 ноября 2019

Я просмотрел другие посты, но, похоже, не могу решить мою проблему. У меня включена проверка орфографии, но она не возвращает никаких предложений. Объект проверки орфографии находится в результате, но он всегда пуст. В настоящее время я проверяю орфографию с помощью поля name:

<field name="name" type="string" indexed="true" stored="true" multiValued="false"/>

И я включил проверку орфографии в моем обработчике /select со следующими настройками:

<str name="spellcheck">on</str>
<str name="spellcheck.count">1</str>
<str name="spellcheck.extendedResults">true</str>
<str name="spellcheck.alternativeTermCount">2</str>
<str name="spellcheck.maxResultsForSuggest">0</str>
<str name="spellcheck.onlyMorePopular">true</str>
<str name="spellcheck.collate">true</str>
<str name="spellcheck.collateExtendedResults">true</str>
<str name="spellcheck.maxCollationTries">5</str>
<str name="spellcheck.maxCollations">3</str>

ИУ меня есть следующий компонент поиска орфографии:

<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
  <lst name="spellchecker">
    <str name="name">default</str>
    <str name="field">name</str>
    <str name="classname">solr.DirectSolrSpellChecker</str>
    <str name="distanceMeasure">internal</str>
    <int name="maxEdits">2</int>
    <int name="minPrefix">1</int>
    <int name="maxInspections">5</int>
    <int name="minQueryLength">4</int>
    <float name="maxQueryFrequency">1</float>
    <float name="thresholdTokenFrequency">1</float>
  </lst>
</searchComponent>

У меня есть документ со значением поля "name":"Sample document". Когда я пробую что-то вроде sampel, я получаю 0 результатов и ничего не предлагаю в проверке орфографии. То же самое с другими словами.

Я прошел все настройки, и они кажутся хорошими (насколько я могу судить по их описанию в документации), я не могу понять, почему он не предлагает терминыкоторые в поле. Любая помощь приветствуется.

РЕДАКТИРОВАТЬ

Для справки, вот тип текстового поля, которое я не использую для поля проверки орфографии:

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