我试图添加一个多值内容到Solr索引。原始字符串包含以","分隔的值。
<fieldtype name="commas_type" class="solr.TextField" omitNorms="true">
<analyzer type="index">
<tokenizer class="solr.PatternTokenizerFactory" pattern=",s*"/>
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.PatternTokenizerFactory" pattern=",s*"/>
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldtype>
<field name="keywords" type="commas_type" stored="true" indexed="true" multiValued="true" />
而不是得到:
<doc>
<arr name="keywords">
<str>Agile</str>
<str>Kanban</str>
<str>Clojure</str>
<str>Datomic</str>
</arr>
</doc>
我:
<doc>
<arr name="keywords">
<str>Agile, Kanban</str>
<str>Clojure, Datomic</str>
</arr>
</doc>
Solr不改变原始数据的存储值。
模式标记器将只应用于索引值。因此,如果您检查索引中的索引项,您将得到的值除以,。
但是,Solr返回的值将始终是提供给它的值。
你需要在客户端处理它