1

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

1 回答 1

1

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

您需要在客户端处理它。

于 2013-04-29T13:08:39.777 回答