繁体   English   中英

Solr拼写检查短语

[英]Solr spell check phrases

我正在尝试找到一种进行两组拼写检查的方法。

一种处理文档中常见单词的拼写检查查询。 另一个处理拼写检查查询,查找诸如作者姓名之类的项目,该名称可以是多个单词长。 我希望它能正常工作,以便即使他们离作者的名字很近,它也会显示建议。 但是拼写错误的建议要求单词距离要更近。

现在,我有一个用于拼写的“万能”字段,但是它做了很多标记化处理,会破坏短语。 所以我不能真正将其原样用于短语匹配。

这是拼写检查组件:

<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"/>

对单独的标记进行了拼写检查。 您可以添加solr.ShingleFilterFactory到您的分析之前solr.RemoveDuplicatesTokenFilterFactory使短语令牌。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM