[solr ] 关于deltaImport增量更新产生的重复数据问题(不信没人遇到和我一样的问题)
wangxiaolongbob
2012-01-02
我经过第一次full import 之后已经成功导入数据(2个人):
然后我为这2个人建立联系人的关系,在数据库里面建立好了之后,我用deltaImport增量更新数据: 首先访问 http://localhost:8983/solr/XiaoLongTest/dataimport?command=delta-import 更新数据成功:
这明显出现了一个问题,就是当我进行deltaImport的时候老的数据还是存在,请问有没有谁遇到这个问题,有没有什么解决方案??? |
|
wangxiaolongbob
2012-01-02
我的data-config.xml里面的doc是这样写的:
<document> <entity name="Member" pk="id" query="select id,fullName,dtype,avatarUrl,fullNamePinyin,fullNameShoupin from Member where isDeleted=false" deltaImportQuery="select id,fullName,dtype,avatarUrl,fullNamePinyin,fullNameShoupin from Member where id = '${dataimporter.delta.id}'" deltaQuery="select id from Member where lastModifyTime > '${dataimporter.last_index_time}' and isDeleted=false"> <entity name="connections" pk="master_id" query="select connecter_id from connection where master_id='${Member.id}' and isDeleted=false" deltaQuery="select master_id from connection where lastModifyTime > '${dataimporter.last_index_time}' and isDeleted=false" deletedPkQuery ="select id from Member where id='${connections.master_id}' and isDeleted=false" parentDeltaQuery="select id from Member where id='${connections.master_id}' and isDeleted=false" > </entity> </entity> </document> 我感觉我的这个问题应该就是怎样删除索引的问题,可是我又不知道deletedPKQuery怎么用?请遇到过这个问题的老师帮我看看,谢谢了!!! 另外,我还有几个小问题,这里面的那个deltaImportQuery有什么用啊,我怎么没有感觉到他的用处啊?? |
|
yuhao_1202
2012-05-05
可能Solr不认为数据重复了。schema.xml里面配置的 <uniqueKey>id</uniqueKey>
字段,才是界定重复的标准。 增量导入的deltaQuery是用来确认有没有记录要导入的,一般只返回记录ID. 而deltaImportQuery是已经确认有记录要导入的情况下,用来获取要导入的记录所有属性的,是依据deltaQuery的ID来确定的。 意味着:deltaQuery返回了多少个ID,就会执行多少次deltaImportQuery |