Solr 4.1不处理增量导入中添加的文档

Solr 4.1不处理增量导入中添加的文档,solr,Solr,我的data-config.xml中包含以下内容: <dataConfig> <dataSource dataSource info"/> <document> <entity name="item" pk="itemid" query=" SELECT itemid,start,end,item_categoryid FROM item" deltaImpor

我的data-config.xml中包含以下内容:

<dataConfig>
  <dataSource dataSource info"/>
  <document>
   <entity name="item"
        pk="itemid"
        query=" SELECT itemid,start,end,item_categoryid
                FROM item"
        deltaImportQuery="  SELECT  * FROM item
                            WHERE   itemid = '${dataimporter.delta.item_id}'"
        deltaQuery="    SELECT  itemid
                        FROM    item
                        WHERE   last_mod > '${dataimporter.last_index_time}'
                            OR  create_time> '${dataimporter.last_index_time}'">
        <field column="itemid" name="item_id"/>
        <field column="start" name="start"/>
        <field column="end" name="end"/>
        <entity name="item_category" 
                pk="item_categoryid"
                query=" SELECT  item_categoryid,desc,title 
                        FROM    item_category
                        WHERE   mbpostingid='${item.item_categoryid}'"
                deltaImportQuery="  SELECT  * FROM item_category
                                    WHERE   item_categoryid= '${dataimporter.delta.id}'"
                deltaQuery="SELECT  item_categoryid
                            FROM    item_category
                            WHERE   last_mod > '${dataimporter.last_index_time}'
                                OR  create_time > '${dataimporter.last_index_time}'">
           <field column="item_categoryid" name="id"/>
           <field column="desc" name="desc"/>
           <field column="title" name="title"/>
        </entity>
    </entity>
  </document>
</dataConfig>

“${dataimporter.last_index_time}”
或创建_time>'${dataimporter.last_index_time}'>
每当我运行增量导入时

http://localhost:8983/solr/dataimport?command=delta-导入

Solr正在更新数据库中已更新的行,但它不会为已添加的行添加索引,也不会删除已删除的行的索引

Solr识别(获取)我的数据库中新添加的行,但不“处理”它们

0

我的数据配置有什么问题吗?我能做些什么吗

谢谢, 卡莱布

我们必须在变量中使用准确的列名。在我看来,列名是
itemid
(没有下划线),因此您应该尝试一下:

query="SELECT itemid,start,end,item_categoryid
            FROM item"
deltaImportQuery="SELECT  * FROM item
                  WHERE   itemid = '${dataimporter.delta.itemid}'"
                                                         ^----^
试一试

说:

deltaImportQuery:(仅用于增量导入)。如果不存在此项,DIH将尝试通过(在标识增量后)修改“查询”来构造导入查询(这很容易出错)。有一个命名空间${DIH.delta.column name}可用于此查询。例如:选择*from tbl,其中id=${DIH.delta.id}


<entity name="searchitemcontent" pk="itemid" 
        query="select skuid, noofsupp, membership, isnull(negotiable,0) as negotiable from searchskumaster skm "
        deltaImportQuery="select skuid, skuname, combineskuname,Category, Product, Brand, Price, discount, url, image, itemstatus , supplierid,itemid, marketprice,mwsimage, pricestatus, isservice ,suppliername, noofsupp, membership, isnull(negotiable,0) as negotiable from
        searchskumaster skm where itemid='${dih.delta.itemid}'"
        deltaQuery="select itemid  from searchskumaster where modifieddate &gt; '${dataimporter.last_index_time}'"
        deletedPkQuery="SELECT itemid FROM searchskumaster where isdeleted=1 and modifieddate &gt; '${dataimporter.last_index_time}' ">

注意:选择itemid。在
deltaQuery
deltaImportQuery
query中,itemid='${dih.delta.itemid},在两个查询中,itemid应该是相同的名称

当我尝试此操作时,它停止提取添加的行,仍然没有处理任何内容。实际上,当我尝试此操作时,它开始抛出错误。getNext()对于查询“SELECT*FROM item,其中itemid=”374126“”(我最近添加的记录)失败。可能是延迟答复,但这肯定是答案。${dataimporter.delta.id}的id部分应该反映唯一密钥的名称。
deltaImportQuery="SELECT  * FROM item
                  WHERE   itemid = '${dih.delta.item_id}'"
<entity name="searchitemcontent" pk="itemid" 
        query="select skuid, noofsupp, membership, isnull(negotiable,0) as negotiable from searchskumaster skm "
        deltaImportQuery="select skuid, skuname, combineskuname,Category, Product, Brand, Price, discount, url, image, itemstatus , supplierid,itemid, marketprice,mwsimage, pricestatus, isservice ,suppliername, noofsupp, membership, isnull(negotiable,0) as negotiable from
        searchskumaster skm where itemid='${dih.delta.itemid}'"
        deltaQuery="select itemid  from searchskumaster where modifieddate &gt; '${dataimporter.last_index_time}'"
        deletedPkQuery="SELECT itemid FROM searchskumaster where isdeleted=1 and modifieddate &gt; '${dataimporter.last_index_time}' ">