我想在Solr中定义一个字段类型,它应具有以下属性
搜索时忽略大小写 忽略空格分裂
尝试如下,
<fieldType name="text_lcws" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
</analyzer>
</fieldType>
但它将字符串拆分为空格: - (
答案 0 :(得分:0)
您需要修改正在使用的标记生成器。根据Solr Wiki上的Analyzers/Tokenizers页面,我建议使用KeywordTokenizerFactory,定义如下:“将整个字段视为单个标记,无论其内容如何。”
所以我将在下面定义一个字段。请注意我也删除了SynonymFilterFactory,不确定是否真的需要,如果是的话,我建议把它作为索引时间分析器。
<fieldType name="text_lcnows" class="solr.TextField" positionIncrementGap="100">
<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>