我是solr的新手,
我有一张这样的 table
id infield body
---------------------------------------------
1 ValX Article1-Body
1 ValY Article1-Body
1 ValZ Article1-Body
2 ValW Article2-Body
....
我的mysql查询看起来像
select A.id,B.infield, A.body from A inner join B on A.id=B.id;
在schema.xml中,我有这个
<field indexed="true" multiValued="true" name="infield" stored="true" type="string"/>
现在,当我的查询是*:*时,我应该得到如下所示的所有内场
<str name="id">1</str>
<str name="body">Article1-Body</str>
<arr name="infield">
<str>ValX</str>
<str>ValY</str>
<str>ValZ</str>
</arr>
but i am getting this
<str name="id">1</str>
<str name="body">Article1-Body</str>
<arr name="infield">
<str>ValX</str>
</arr>
EDIT
我的dataconfig.xml包含:
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
<dataSource autoCommit="true" batchSize="-1" convertType="true" driver="com.mysql.jdbc.Driver" password="pass" url="jdbc:mysql://127.0.0.1/test" user="root"/>
<document name="items">
<entity name="root" pk="id" preImportDeleteQuery="data_source:10" query="select A.id,B.infield, A.body from A inner join B on A.id=B.id;" transformer="TemplateTransformer">
<field column="data_source" template="10"/>
<field column="data_source_type" template="Jdbc"/>
<field column="data_source_name" template="Test"/>
</entity>
</document>
</dataConfig>
什么可能是错的?
谢谢
1 回答
查询可能会生成具有相同ID的多个记录,因此单独/单独的记录将被覆盖,因为它们具有相同的ID .
所以你最终只有一个内场 Value .
对于多值字段,您应将其包含为sub entity which returns multiple values .