[英]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.