具有多个匹配行的Solr数据导入仅导入第一行

时间:2012-08-14 20:53:25

标签: solr lucene

我的solr数据导入config.xml看起来像这样

<document>
      <entity name="users" pk="id"
         query="select id, user_name, site_id from users"
         deltaQuery = "select id from users where updated &gt;= '${dataimporter.last_index_time}'"
         deltaImportQuery = "select id, user_name, site_id from users where id = ${dataimporter.delta.id}">
         <field column="id" name="id"/>
         <field column="name" name="user_name"/>
         <field column="site_id" name="site_id"/>
         <entity name="prefs" pk="id"
               query="select pref_value from user_preferences where user_id = '${users.id}'"
               deltaQuery="select id from user_preferences where updated &gt;= '${dataimporter.last_index_time}'"
               parentDeltaQuery="select user_id as id from user_preferences where id = ${prefs.id}">
            <field column="pref_value" name="pref_value" />
         </entity>
      </entity>
   </document>

每个用户可以有多个偏好。现在它只导入它找到的第一个user_preference。如何导入所有用户首选项?

1 个答案:

答案 0 :(得分:1)

  1. 确保pref_value是schema.xml中的multiValued字段
  2. 我不认为你可以在内部实体中使用parentDeltaQuery和deltaQuery,这些仅适用于父实体。