这是我的用例:
在我的应用中,有一个字段可输入人名。我希望通过SOLR让这个人名自动建议。
让我在示例中解释,假设之前用户输入了以下值:
现在,当用户输入" wong"时,我的应用程序会将所有3个选项列为自动建议。同样,当用户输入" WONG"时,我的应用程序也会列出所有3个选项。
以下是我配置SOLR schema.xml的方法:
<fieldType name="text_sentence_auto" class="solr.TextField">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
使用这种配置,我可以通过保留原始案例来索引名称,但查询始终区分大小写,当用户输入&#34; wong&#34;时,意思是SOLR只返回&#34; wong yek汉&#34 ;.请告知如何使查询不区分大小写?
由于
答案 0 :(得分:0)
在Solr中以不区分大小写的模式进行查询。您可以将分析器和查询保持为<filter class="solr.LowerCaseFilterFactory"/>
。
LowerCaseFilterFactory 仅是过滤器工厂。它不会影响您的存储数据。它保留了索引文档中的区分大小写..
配置Solr schema.xml:
<fieldType name="text_sentence_auto" class="solr.TextField">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>