繁体   English   中英

Solr DIH为列导入多个值

[英]Solr DIH importing multiple values for a column

我正在使用DIH从数据库导入各种字段。 sql查询返回以下数据

    |COL1 | COL2 |COL3 |COL4 |COL5 |COL6 |COL7 |COL8 |COL9 |COL10 |
    ------------------------------------------------------------------
    |val1 |val2  |val3 |val4 |val5 |val6 |val7 |val8 |val9 |multi-val1 |
    |val1 |val2  |val3 |val4 |val5 |val6 |val7 |val8 |val9 |multi-val2 |

<field name="Col10" type="int" indexed="true" stored="true" default="0" multiValued="true"/>

当我运行完整导入时,所有行都被处理,但是当我查看数据时,我看到Solr中只有一行。 我理解这是因为唯一的Id(Col1)。 但我不确定为什么col10不存储从我的查询返回的多个值。

要将值存储为多值/​​数组,我需要做什么?

谢谢

您可能需要使用Transformer从Col10获取更多值,

<entity name="foo" transformer="RegexTransformer" query="select ...">
   <field name="Col10" splitBy=","/>
</entity>

另一方面,如果col10在多行中,则jsp的SQL查询返回多个值,因为唯一的id是col1

|COL1 | COL2 |COL3 |COL4 |COL5 |COL6 |COL7 |COL8 |COL9 |COL10 |
------------------------------------------------------------------
|val1 |val2  |val3 |val4 |val5 |val6 |val7 |val8 |val9 |multi-val1 |
|val1 |val2  |val3 |val4 |val5 |val6 |val7 |val8 |val9 |multi-val2 |

也许调整SQL以产生以下结果,然后使用RegexTransformer,如Kevin建议的那样。

|COL1 | COL2 |COL3 |COL4 |COL5 |COL6 |COL7 |COL8 |COL9 |COL10 |
------------------------------------------------------------------
|val1 |val2  |val3 |val4 |val5 |val6 |val7 |val8 |val9 |multi-val1, multi-val2|

当然,基于DIH组合多值字段的方法不止一种。 另一个例子:

<entity name="cols" query="Select * From col1_9_table">
    <entity name="col10" query="Select col10 From col10_table 
                                Where Id='${col1_9_table.Id}'">  
     <field column="col10" name="col10"/>
    </entity>
</entity>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM