2013-04-28 58 views
1

Solr last_index_time是dih启动时的Solr服务器机器时间。如果系统与多个服务器分发,而这些服务器没有确切的时间戳,那么如何处理时间差?Solr dih上次索引时间偏移量

对我的一个解决方案是设定一个容差,例如, 5分钟,做dih delta导入时,减去上面的last_index_time 5分钟。尽管一些重复的项目将被处理,Solr将覆盖现有的项目。

你能给我一些建议吗?谢谢。

+0

您是否在每台服务器上触发导入?还是有主从设置? – 2013-04-28 15:24:51

+0

感谢您的回复。我有一个数据库连接了多个应用程序服务器,因此数据库中记录的更新时间来自不同的应用程序服务器。根据dataimport.properties中的last_index_time和数据库记录更新时间,Solr正在增量导入此数据库,这可能有点不同。如何处理这种情况?我认为这是一个普遍的例子,除非我误认为Solr机制。谢谢。 – user2102627 2013-04-28 22:35:52

回答

0

我看到这个问题最常见的方式是在Solr格局中只有一个Solr实例上运行DIH,然后使用Solr的复制(也称为主从 - 如上所述)功能来分发更新的信息围绕其他涉及的指标。

+0

我只有一个Solr实例,因为我现在只有一个数据库。重点是唯一一个数据库存储来自不同应用程序服务器(不完全相同的时间戳)的lastUpdateTime记录,并且在dataimport.properties中使用lastUpdateTime。 – user2102627 2013-04-29 01:48:07

+0

好的,谢谢,我明白现在的困境。除了尝试以某种方式规范化数据库中的应用程序更新时间之外,一种简单的方法可能是将每个逻辑Web应用程序视为碎片(在Solr 4.x中,这更易于使用,请参阅http://docs.lucidworks.com /显示/ solr的/碎片+和+索引+数据+在+ SolrCloud);或者,您可以将它们作为单独的核心(再次基于webapp作为判别式),然后将它们合并在一起(请参阅http://docs.lucidworks.com/display/solr/Merging+Indexes)。 – icey502 2013-04-30 01:53:58