将多值逗号分隔的String添加到Solr不起作用

时间:2013-04-29 12:26:02

标签: java solr

我正在尝试向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>

1 个答案:

答案 0 :(得分:1)

Solr不会更改原始数据的存储值 模式标记生成器仅应用于索引值。因此,如果您检查索引的索引条件,您将得到分割的值,。
但是,Solr返回的值始终是提供给它的值。

您需要在客户端处理它。