如何使Solr的拼写检查器忽略大小写?

Shr*_*ath 2 solr spell-checking

你如何要求示例拼写检查器忽略大小写?我正在使用演示中显示的所有默认值.
现在我看到,如果我输入古代,它会问"你的意思是古代吗?"我该怎么办?

ps:我的schema.xml中没有"spell"这个词!它是如何工作的?

Nic*_*ark 9

架构应该有一个名为"spell"的字段类型,用于拼写检查.这将小写拼写检查器使用的所有单词,因此您不必担心案例.以下是如何使用此字段类型的示例.

在模式中创建一个字段以进行拼写检查.

<field name="spelling" type="spell" indexed="true" stored="false"/>
Run Code Online (Sandbox Code Playgroud)

然后使用复制字段将数据复制到此字段中.例如,下面的代码将"product_name"字段复制到拼写检查器中.

<copyField source="product_name" dest="spelling"/>
Run Code Online (Sandbox Code Playgroud)

编辑...

对不起...我虽然"拼写"字段类型是默认架构.将其添加到与其他fieldType标记相同的部分中的架构中.

<fieldType name="spell" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" 
        words="stopwords.txt"/>
    <filter class="solr.StandardFilterFactory"/>
        <filter class="solr.LowerCaseFilterFactory" />
    <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" 
        ignoreCase="true" expand="true"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" 
        words="stopwords.txt"/>
    <filter class="solr.StandardFilterFactory"/>
        <filter class="solr.LowerCaseFilterFactory" />
    <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
  </analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)