2

我是 SOLR 的新手,正在对这项技术进行一些研究。我现在有一个关于 delta-import 函数的问题,所以我查看了 SO 并发现了这个:Solr DataImportHandler delta import。在答案中[date_update]提到了一个字段,它似乎是记录的时间戳。

我的问题是: [date_update] 是在创建记录时存储在表中的时间戳吗?如果是这样,如果数据库服务器的日期与安装 SOLR 的服务器不完全同步,这会不会产生问题?如果 Solr 服务器时间早于 SQLServer 时间,这可能会遗漏一些记录。

4

2 回答 2

1

此解决方案可能会留下一些记录(如果服务器配置不正确)。

我正在使用类似的解决方案,但进行了一些修改。当项目以任何方式更改时,数据库中的项目会更新时间戳字段。

在更新索引之前,我从 Solr 获取最后一个时间戳(此字段已存储),然后我将索引查询中的此时间戳传递给 Solr(/?command=full-import&clean=false×tamp=...)。

使用查询属性进行完整和增量导入

这样 Solr 机器上的时间与 DB 机器上的时间无关。但是在我的情况下,索引完成后,我正在使用 DB 执行快速验证(检查是否由于某种原因丢失了任何内容,或者必须删除某些内容)。

您也可以在使用 dataimporter.last_index_time 时使用这种验证。

于 2011-12-28T12:56:33.087 回答
0

您可以使用 FlexCDC,它监视 MySQL 二进制日志中的表数据更改:

http://www.mysqlperformanceblog.com/2011/03/25/using-flexviews-part-two-change-data-capture/

于 2012-08-13T20:17:48.907 回答