首页 文章

solr DIH中的delta-import问题

提问于
浏览
1

当我运行full_import命令时它工作正常 . 更新的日期将写入dataimport.properties文件 . 当我运行delta-import时,它会使Indexing失败 . 回滚所有更改.. dataimport.properties文件已创建,并在solr / conf / location中具有777权限 .

请帮我解决这个问题 .


@mbonaci

data-config.xml中的查询,deltaImportQuery和deltaQuery如下所示

<entity name="item" query="select group_title,description,DATE_FORMAT(created_date, '%Y-%m-%dT%H:%i:%sZ') as createdDate,group_status, 'GROUP' as itemtype,group_id as id from collaboration_groups where group_status=1" 
deltaImportQuery="select group_title,description,DATE_FORMAT(created_date, '%Y-%m-%dT%H:%i:%sZ') as createdDate,group_status,group_id as id,'GROUP' as itemtype  from collaboration_groups where group_status=1 and group_id=${dataimporter.delta.id} "  
deltaQuery="select group_id from collaboration_groups where group_status=1 and  updated_date &gt; '${dataimporter.last_index_time}'" deletedPkQuery="select group_id  from  collaboration_groups  where group_status = 0 and updated_date &gt; '${dataimporter.last_index_time}'">
            <field column="id"  name="id" />
            <field column="itemtype" name="itemtype" />
            <field column="group_title" name="fullName" />
            <field column="description" name="description"/>
            <field column="createdDate" name="createdDate"/>
</entity>

config.xml中dataImport请求处理程序的config参数如下

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">/var/solr/data-config.xml</str>
</lst>
</requestHandler>

2 回答

  • 8

    我注意到,在你的 deltaImportQuery 中你引用了 id (你的deltaQuery中不存在)而不是 group_id . 在这一行:

    ...and group_id=${dataimporter.delta.id}"
    

    由于deltaQuery中的PK是group_id,因此查询的这一部分应如下所示:

    ...and group_id=${dataimporter.delta.group_id}"
    

    我有同样的问题,因为'我不明白 ${dataimporter.delta} 实际上代表 deltaQuery .

  • 0

    你能查看你的 dataConfig 文件并发布你的 querydeltaImportQuerydeltaQuery 吗?
    dataConfig 直接位于 solrconfig.xml ,内部dataImport请求处理程序标记中,或者位于单独的xml文件中 . 要找出哪个文件检出dataImport请求处理程序的config参数,它应该看起来与此类似:

    <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
        <lst name="defaults">
            <str name="config">mssql-jdbc.xml</str>
        </lst>
    </requestHandler>
    

    包含 dataConfig 的文件与solrconfig.xml(conf)位于同一目录中 .

相关问题