我是solr的新手,
我有一张这样的桌子
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>
但我得到了这个
<str name="id">1</str> <str name="body">Article1-Body</str> <arr name="infield"> <str>ValX</str> </arr>
修改
我的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>
知道可能出现什么问题? 感谢
答案 0 :(得分:2)
查询可能会产生多个具有相同ID的记录,因此单独/单独的记录会被覆盖,因为它们具有相同的ID。
所以你最终只得到一个内场价值
对于多值字段,您应将其包含为sub entity which returns multiple values。