将多值、逗号分隔的字符串添加到 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>

Solr不改变原始数据的存储值。
模式标记器将只应用于索引值。因此,如果您检查索引中的索引项,您将得到的值除以,。
但是,Solr返回的值将始终是提供给它的值。

你需要在客户端处理它

最新更新