Solr索引,将字符串字段拆分为列表

时间:2018-04-07 19:17:41

标签: text indexing solr tokenize

在Solr中,我希望通过拆分将字符串字段索引为列表。

以下是data_config.xml文件中的索引查询。

<document name="Example">
<entity dataSource="example_table" name="Example" 
    query="select id, text from example_table"
    pk="id"
    transformer="RegexTransformer"
>
    <field column="id" name="id" />
    <field column="text" name="text" />
</entity>

字段text是逗号分隔的字符串。示例:"A, B, C"

以下是schema.xml文件

中的字段定义
<field name="text" type="string" indexed="true" stored="true" required="false" multiValued="true" />

当我查询Solr时,输出为:

"text":["A, B, C"]

有人可以解释一下我如何得到如下结果?

"text":["A","B","C"]

1 个答案:

答案 0 :(得分:0)

要在DataImportHandler定义中执行此操作(因为您已经添加了RegexTransformer):

<field column="text" name="text" splitBy=", " />

或者使用带有Regular Expression Pattern Tokenizer

的TextField在字段定义中执行此操作
<analyzer>
  <tokenizer class="solr.PatternTokenizerFactory" pattern=","/>
  <filter class="solr.TrimFilterFactory"/>
</analyzer>