0

我是 solr 的新手,
我有一张这样的桌子

id内场身体
---------------------------------------------
1 ValX 文章1-正文
1 ValY Article1-正文
1 ValZ 文章1-正文
2 ValW文章2-正文
……

我的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-正文</str>
<arr name="infield">    
   <str>ValX</str>
   <str>值</str>
   <str>ValZ</str>
</arr>

但我得到了这个

<str name="id">1</str>
<str name="body">Article1-正文</str>
<arr name="infield">    
   <str>ValX</str>
</arr>

编辑
我的 dataconfig.xml 包含:

<?xml 版本="1.0" 编码="UTF-8"?>
<数据配置>
  <dataSource autoCommit="true" batchSize="-1" convertType="true" driver="com.mysql.jdbc.Driver" password="pass" url="jdbc:mysql://127.0.0.1/test" 用户="根"/>
  <文档名称="项目">
    <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;" 变压器="模板变压器">
      <field column="data_source" 模板="10"/>
      <field column="data_source_type" template="Jdbc"/>
      <field column="data_source_name" template="Test"/>
    </实体>
  </文档>
</dataConfig>

知道可能出了什么问题吗?
谢谢

4

1 回答 1

2

该查询可能会生成具有相同 ID 的多条记录,因此单独/单独的记录将被覆盖,因为它们具有相同的 ID。
所以你最终只有一个内场值。
对于多值字段,您应该将其作为返回多个值的子实体包含在内。

于 2012-09-04T07:43:47.603 回答