我正在使用solr拼写检查俄语。当你用西里尔文字符输入时,一切都可以,但是当你用拉丁字符输入时,它不起作用。Solr俄语拼写检查
我想要的拼写检查正确,当你与西里尔字符输入,且当你拉丁字符打字。与对应文字与西里尔文字符。
For example, when you type:
телевидениеее or televidenieee
It should correct to:
телевидение
schema.xml中:
<fieldType name="spell_text" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="[,.;:]" replacement=" "/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.PatternReplaceFilterFactory" pattern="'s" replacement=""/>
<filter class="solr.ShingleFilterFactory" maxShingleSize="2" outputUnigrams="true"/>
<filter class="solr.LengthFilterFactory" min="3" max="256" />
</analyzer>
</fieldType>
solrconfig.xml中
<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
<lst name="spellchecker">
<str name="name">default</str>
<str name="field">spellcheck</str>
<str name="classname">solr.IndexBasedSpellChecker</str>
<str name="buildOnCommit">true</str>
<str name="buildOnOptimize">true</str>
<str name="spellcheckIndexDir">./spellchecker</str>
<str name="accuracy">0.75</str>
</lst>
<lst name="spellchecker">
<str name="name">wordbreak</str>
<str name="field">spellcheck</str>
<str name="classname">solr.WordBreakSolrSpellChecker</str>
<str name="combineWords">false</str>
<str name="breakWords">true</str>
<int name="maxChanges">1</int>
</lst>
</searchComponent>
感谢您的帮助
只是为了澄清 - 你想有'televidenieee'音译为'телевидениеее'然后拼写检查固定'телевидение ',对吗? – rchukh
是的,你说得对。 – KiraLT
你还可以分享你使用的'requestHandler'吗? – cheffe