用SOLR和LowerCaseFilterFactory索引字段 [英] Indexing Fields with SOLR and LowerCaseFilterFactory
问题描述
我有一个定义为
<fieldType name="text_ws_lc" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
对于这种类型的字段,在不区分大小写的情况下进行搜索非常有效.但是,我希望将原始值插入到字段中,而不是小写值.是否可以从索引分析器中删除LowerCaseFilterFactory并获得此功能? ALA
Which works fine for searching without case sensitivity on fields that are this type. However I want the original value inserted into the field NOT the lowercase value. Is it possible to remove the LowerCaseFilterFactory from the index analyzer and get this functionality? ALA
<fieldType name="text_ws_lc_std" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
推荐答案
您应该定义两个字段:一个字段的小写值用于搜索,另一个字段用于保留原始值.您可以在schema.xml中使用复制字段指令来使两个字段保持同步.
You should define two fields: one with the value in lower case used for searching and another one to hold the original value. You can use a copy field instruction in your schema.xml to maintain the two fields in sync.
这篇关于用SOLR和LowerCaseFilterFactory索引字段的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!