如何在不區分大小寫的表單中創建字符串字段的副本?我想使用典型的「字符串」類型和不區分大小寫的類型。該類型定義,像這樣:如何在SOLR中創建字符串字段的大小寫敏感副本?
<fieldType name="string" class="solr.StrField"
sortMissingLast="true" omitNorms="true" />
<!-- A Case insensitive version of string type -->
<fieldType name="string_ci" class="solr.StrField"
sortMissingLast="true" omitNorms="true">
<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>
而且像這樣的領域的例子:
<field name="destANYStr" type="string" indexed="true" stored="true"
multiValued="true" />
<!-- Case insensitive version -->
<field name="destANYStrCI" type="string_ci" indexed="true" stored="false"
multiValued="true" />
我嘗試使用CopyField像這樣:
<copyField source="destANYStr" dest="destANYStrCI" />
但是,顯然CopyField被稱爲在調用任何分析器之前,在source和dest上,所以儘管我已經通過分析器指定dest是不區分大小寫的,但是仍然保留從源字段複製的值的情況。
我希望能避免重新傳輸從客戶端的字段中的值,達到創紀錄的創建時間。
很好的回答。特別是omitNorms是有用的,以節省內存。 – 2017-01-31 12:10:34