2014-01-13 2 views
0

У меня возникают проблемы с проверкой орфографии.Solr4 - проблема проверки орфографии с несколькими терминами

Если я пришлю запрос с «wrd», проверка орфографии дайте мне предложение, которое я хочу: «слово». Но если я отправлю запрос с несколькими терминами, например «wrd black», проверка орфографии вернет правильное значениеShelled в true. Я хочу, чтобы предложение проверки орфографии: «Слово черное».

Обратите внимание, что если я отправлю запрос с помощью «wrd blck», проверка орфографии даст мне предложения, которые я хочу («слово черное»).

Я не думаю, что это нормальное поведение, но я не могу найти, где проблема.

Вот мой solrconfig.xml:

<config> 


    <requestHandler name="standard" class="solr.StandardRequestHandler" default="true"> 

    <lst name="defaults"> 
     <str name="spellcheck.dictionary">default</str> 
     <str name="spellcheck">on</str> 
     <str name="spellcheck.extendedResults">true</str> 
     <str name="spellcheck.count">10</str> 
     <str name="spellcheck.maxResultsForSuggest">5</str> 
     <str name="spellcheck.collate">true</str> 
     <str name="spellcheck.collateExtendedResults">true</str> 
     <str name="spellcheck.maxCollationTries">15</str> 
     <str name="spellcheck.maxCollations">10</str> 
    </lst> 
<arr name="last-components"> 
    <str>spellcheck</str> 
</arr> 

    </requestHandler> 


<searchComponent name="spellcheck" class="solr.SpellCheckComponent"> 
    <str name="queryAnalyzerFieldType">textSpell</str> 
    <lst name="spellchecker"> 
     <str name="name">default</str> 
     <str name="field">spell</str> 
     <str name="spellcheckIndexDir">./spellchecker</str> 
     <str name="buildOnOptimize">true</str> 
     <str name="buildOnCommit">true</str> 
     <float name="thresholdTokenFrequency">.01</float> 
    </lst> 
</searchComponent> 


</config> 

и в моем schema.xml:

<field name="spell" type="textSpell" indexed="true" stored="false" multiValued="true" /> 
    <copyField source="attr_*" dest="spell" /> 
    <fieldType name="textSpell" class="solr.TextField" positionIncrementGap="100" omitNorms="true"> 
     <analyzer> 
     <tokenizer class="solr.StandardTokenizerFactory"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     <filter class="solr.StandardFilterFactory" /> 
     <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/> 
     </analyzer> 
    </fieldType> 

кого-то есть идеи?

ответ

0

Кажется, что ошибка, когда одно из условий запроса написано правильно, а настройка проверки орфографии имеет maxCollationTries> 1, я не могу точно сказать, что это ошибка, я просматриваю код, чтобы узнать это.

Удалить этот конфиг из вашего стандартного Params вашего обработчика

<str name="spellcheck.maxCollationTries">15</str> 

Вы можете использовать это как пары запроса как spellcheck.maxCollationTries = 15 и попробовать.

Смежные вопросы