Java 尽管进行了配置,但Solr拼写检查仍不工作

Java 尽管进行了配置,但Solr拼写检查仍不工作,java,solr,configuration,spell-checking,Java,Solr,Configuration,Spell Checking,我看过其他帖子,但似乎无法解决我的问题。我已打开拼写检查,但它不会返回任何建议。拼写检查对象在结果中,但始终为空。我目前正在使用名为name的字段进行拼写检查: <field name="name" type="string" indexed="true" stored="true" multiValued="false"/> 我有以下拼写检查搜索组件: <searchComponent name="spellcheck" class="solr.SpellCheckComp

我看过其他帖子,但似乎无法解决我的问题。我已打开拼写检查,但它不会返回任何建议。拼写检查对象在结果中,但始终为空。我目前正在使用名为
name
的字段进行拼写检查:

<field name="name" type="string" indexed="true" stored="true" multiValued="false"/>
我有以下拼写检查搜索组件:

<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
  <lst name="spellchecker">
    <str name="name">default</str>
    <str name="field">name</str>
    <str name="classname">solr.DirectSolrSpellChecker</str>
    <str name="distanceMeasure">internal</str>
    <int name="maxEdits">2</int>
    <int name="minPrefix">1</int>
    <int name="maxInspections">5</int>
    <int name="minQueryLength">4</int>
    <float name="maxQueryFrequency">1</float>
    <float name="thresholdTokenFrequency">1</float>
  </lst>
</searchComponent>

在这种情况下不能使用字符串字段,因为
sampel
将与整个字符串进行比较-
示例文档
。这一差异太大,不能视为一种修正。而是使用基于文本的字段类型,例如
text\u en
@MatsLindh Good point。我修改了它,所以有一个单独的拼写检查字段,它是一个文本字段,然后在拼写检查中添加了一个从name复制的字段。但是,它仍然不起作用(我更新了conf、重新加载了core、重新编制了索引等等)。@MatsLindh作为参考,我在问题中添加了拼写检查使用的文本字段类型(我还更新了搜索组件以查看拼写检查字段)。在这种情况下,不能使用字符串字段,由于
sampel
将与整个字符串进行比较-
示例文档
。这一差异太大,不能视为一种修正。而是使用基于文本的字段类型,例如
text\u en
@MatsLindh Good point。我修改了它,所以有一个单独的拼写检查字段,它是一个文本字段,然后在拼写检查中添加了一个从name复制的字段。但是,它仍然不起作用(我更新了conf、重新加载了core、重新编制了索引等等)。@MatsLindh作为参考,我在问题中添加了拼写检查使用的文本字段类型(我还更新了搜索组件以查看拼写检查字段)
<searchComponent name="spellcheck" class="solr.SpellCheckComponent">
  <lst name="spellchecker">
    <str name="name">default</str>
    <str name="field">name</str>
    <str name="classname">solr.DirectSolrSpellChecker</str>
    <str name="distanceMeasure">internal</str>
    <int name="maxEdits">2</int>
    <int name="minPrefix">1</int>
    <int name="maxInspections">5</int>
    <int name="minQueryLength">4</int>
    <float name="maxQueryFrequency">1</float>
    <float name="thresholdTokenFrequency">1</float>
  </lst>
</searchComponent>
    <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
        <analyzer type="index">
            <tokenizer class="solr.StandardTokenizerFactory"/>
            <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
            <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/>
            <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
        <analyzer type="query">
            <tokenizer class="solr.StandardTokenizerFactory"/>
            <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
            <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
            <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
    </fieldType>