首页 文章

solr中的多值字段仅返回一个项目

提问于
浏览
0

我是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 回答

  • 2

    查询可能会生成具有相同ID的多个记录,因此单独/单独的记录将被覆盖,因为它们具有相同的ID .
    所以你最终只有一个内场 Value .
    对于多值字段,您应将其包含为sub entity which returns multiple values .

相关问题