Solr 4.1不处理增量导入中添加的文档
我的data-config.xml中包含以下内容: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
<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 > '${dataimporter.last_index_time}'"
deletedPkQuery="SELECT itemid FROM searchskumaster where isdeleted=1 and modifieddate > '${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 > '${dataimporter.last_index_time}'"
deletedPkQuery="SELECT itemid FROM searchskumaster where isdeleted=1 and modifieddate > '${dataimporter.last_index_time}' ">