0

私はSolrの初心者です、
私はこのようなテーブルを持っています

id内野手
---------------------------------------------
1ValXArticle1-ボディ
1ValYArticle1-ボディ
1ValZArticle1-ボディ
2ValWArticle2-ボディ
...。

私のmysqlクエリは次のようになります

A.id = B.idのA内部結合BからA.id、B.infield、A.bodyを選択します。

そして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"ユーザー= "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;" transform = "TemplateTransformer">
      <field column = "data_source" template = "10" />
      <field column = "data_source_type" template = "Jdbc" />
      <field column = "data_source_name" template = "Test" />
    </ entity>
  </ document>
</ dataConfig>

何が間違っているのでしょうか?
ありがとう

4

1 に答える 1

2

クエリはおそらく同じ ID を持つ複数のレコードを生成するため、別々の/個別のレコードは同じ ID を持つためオーバーライドされます。
したがって、内野値は 1 つだけになります。多値フィールドの場合、複数の値を返すサブエンティティ
として含める必要があります。

于 2012-09-04T07:43:47.603 に答える