Проверка орфографии без учета регистра в Solr - PullRequest
1 голос
/ 25 августа 2011

Как мы можем сделать проверку орфографии в 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 Ответ

0 голосов
/ 25 августа 2011

В 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.

...