你如何要求示例拼写检查器忽略大小写? 我使用的是demo中显示的所有默认值 现在我看到如果我输入 Ancient ,它会问“你的意思是古代吗?”我该怎么办?
ps:我的schema.xml中没有“spell”这个词!它是如何工作的?
答案 0 :(得分:9)
架构应该有一个名为“spell”的字段类型,用于拼写检查。这将小写拼写检查程序使用的所有单词,因此您不必担心大小写。以下是如何使用此字段类型的示例。
在架构中创建一个字段以进行拼写检查。
<field name="spelling" type="spell" indexed="true" stored="false"/>
然后使用复制字段将数据复制到此字段中。例如,下面的代码会将“product_name”字段复制到拼写检查器中。
<copyField source="product_name" dest="spelling"/>
修改... 强>
抱歉......我虽然“拼写”字段类型是默认架构。将其添加到与其他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>
答案 1 :(得分:0)
请发布你的solrconfig.xml - 我认为这将提供一个线索。
我最好的猜测是solrconfig.xml包含拼写检查器的配置(link),它指定用于生成拼写建议的字段。该字段在schema.xml中没有LowerCaseFilter