solr更新索引中的现有数据与在索引中插入新数据

solr更新索引中的现有数据与在索引中插入新数据,solr,dataimporthandler,Solr,Dataimporthandler,我正在使用Solr4,对更新索引中的现有数据感到困惑 根据DataImportHandler Wiki: 增量导入:对于增量导入和更改检测,请运行 command`http://:/solr/dataimport?command=delta import.It 支持与相同的清理、提交、优化和调试参数 完全导入命令。“ 我知道增量导入将在数据库中找到新数据并将其插入到 索引。我的问题是它如何处理我有记录的更新 如果存在于索引和数据库中,则会更改数据库记录 我想把这些变化纳入索引中现有的记录中。 瞧

我正在使用Solr4,对更新索引中的现有数据感到困惑

根据DataImportHandler Wiki:

增量导入:对于增量导入和更改检测,请运行 command`http://:/solr/dataimport?command=delta import.It 支持与相同的清理、提交、优化和调试参数 完全导入命令。“

我知道增量导入将在数据库中找到新数据并将其插入到 索引。我的问题是它如何处理我有记录的更新 如果存在于索引和数据库中,则会更改数据库记录 我想把这些变化纳入索引中现有的记录中。 瞧,我不想再插入它了

我试过了,最后得到了两条索引中键不同的记录。 第一个包含创建索引时找到的原始db值, 第二个包含记录更改后的db值。 “您好。我有一个用于从数据库获取数据的solrj客户端。我是 使用增量导入获取数据。如果数据库中的列发生更改 使用带有增量导入的时间戳,我得到了最新的列索引,但是 索引中存在与列类似的重复值,但数据 较旧。这可以清理索引,但我想更新索引 有没有一种方法可以直接用 更新的列没有重复的值。感谢您的帮助
反馈。

表示的文档必须具有唯一的密钥。您的情况下是否存在任何唯一的id?schema.xml中的id是什么?是的,我有一个唯一的id。在我的shema.xml中,我有一个id。问题是,当数据库中的列使用时间戳和增量导入进行更改时,我会得到两个具有不同唯一id的记录,因为唯一id是自动的当您选择了一个错误的主键时,会自动生成。您选择的主键是一个技术键。您需要一个反映记录身份的键。在RDBMS方面,这个键可能不是唯一的,但可以找到记录。请看这里