Проверка орфографии без учета регистра в 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
команда.