0
두 세트의 맞춤법 검사 방법을 찾으려고합니다.Solr 맞춤법 검사 문구
문서에서 발견 된 일반적인 단어에 대한 맞춤법 검사 쿼리를 처리하는 사람. 그리고 저자 이름과 같은 항목에 대해 쿼리의 맞춤법 검사를 처리하는 다른 연산자는 여러 단어로 이루어질 수 있습니다. 나는 그들이 저자의 이름에 원격으로 가까이 가면 제안을 표시 할 수 있도록 일하고 싶다. 맞춤법 오류에 대한 제안은 단어의 거리가 더 가까워 지도록 요구할 것입니다.
지금 당장 필자는 맞춤법에 대한 포괄적 인 필드가 있지만 문구를 깨뜨리는 토큰 화를 많이합니다. 그래서 나는 실제로 일치하는 문구에 대해서는 사용할 수 없습니다.
<searchComponent name="spellcheck" class="solr.SpellCheckComponent" startup="lazy">
<!-- <str name="queryAnalyzerFieldType">textSpell</str> -->
<lst name="spellchecker">
<str name="name">default</str>
<str name="field">spell</str>
<str name="classname">solr.DirectSolrSpellChecker</str>
<str name="distanceMeasure">internal</str>
<float name="accuracy">0.65</float>
<int name="minPrefix">0</int>
<int name="maxEdits">1</int>
<int name="maxInspections">5</int>
<int name="minQueryLength">3</int>
<float name="maxQueryFrequency">0.0005</float>
<float name="thresholdTokenFrequency">.001</float>
<str name="buildOnCommit">true</str>
</lst>
<!-- a spellchecker that can break or combine words. See "/spell" handler below for usage -->
<lst name="spellchecker">
<str name="name">wordbreak</str>
<str name="classname">solr.WordBreakSolrSpellChecker</str>
<str name="field">spell</str>
<str name="combineWords">true</str>
<str name="breakWords">true</str>
<int name="maxChanges">1</int>
<str name="buildOnCommit">true</str>
</lst>
</searchComponent>
그리고 실제 마법 필드 :
<fieldType name="textSpell" class="solr.TextField" positionIncrementGap="100" >
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
<filter class="solr.EnglishMinimalStemFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
<field name="spell" type="textSpell" indexed="true" stored="true" multiValued="true"/>