Проверка орфографии без учета регистра в Solr

Как мы можем сделать проверку орфографии в solr, чтобы игнорировать регистр? Для запроса: "Летер", я получаю предложение "кожа", которая является правильной. Но если запрос "lether", я получаю другое предложение, например "lethel", которое не является правильным.

Я попробовал конфигурацию, упомянутую в этом посте, но она не работает.

Я скопировал мою конфигурацию здесь для справки:

<fieldType name="text_spell" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
  <analyzer type="index">
     <tokenizer class="solr.StandardTokenizerFactory"/>
     <filter class="solr.LowerCaseFilterFactory"/>
     <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
   </analyzer>
   <analyzer type="query">
     <tokenizer class="solr.StandardTokenizerFactory"/>
     <filter class="solr.LowerCaseFilterFactory"/>
     <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
   </analyzer>
</fieldType>

<field name="spelltext" type="text_spell" indexed="true" stored="false" multiValued="true"/>
<field name="title" type="text" indexed="true" stored="true" multiValued="false" omitNorms="true"/>
<copyField source="title" dest="spelltext" />

Есть ли что-то очевидное, чего мне не хватает?

1 ответ

В CSE вы еще не, в вашем spellchecker компонент, который вы должны указать fieldType используя фильтр нижнего регистра, например,

<lst name="spellchecker">
  <str name="name">spell</str>
  <str name="field">text_spell</str>
  <str name="spellcheckIndexDir">spell</str>
  <str name="buildOnOptimize">true</str>
</lst>

Во-вторых, также обратите внимание на buildOnOptimize который восстанавливает ваш индекс проверки орфографии на optimize команда.

Другие вопросы по тегам