2015-03-03 47 views
0

采取这样的场景:从Oracle的关系表即wlslog包含4行我想重新索引Apache Solr实现全收集使用Solrj客户

我已经导入的数据。 现在我从Apache Solr控制台索引这些数据。 现在,当我从Solrj查询这个集合时,它正在获取4行。 但现在我正在从Oracle数据库向wlslog表添加2个新行。 但是当我通过solrj客户端调用这个集合。 它只提取4行,我已经导入一次..

所以有什么办法在Solrj,我们可以得到所有6行而不做重新索引或重新导入数据。 ?

让我知道你是否有任何问题。

+0

正常情况下,当添加新的DB行时,由您的应用程序在Solr中添加文档;这是你的意思吗? – Yann 2015-03-03 10:39:26

+0

@Yann >>基本上这里的事情就像是有一些批处理正在改变数据库表(即wlslog)或有一些形式正在更新数据库表(即wlslog)..和我想更新到Apache Solr数据库..无论如何,通过我可以做到这一点?我不想每次都通过Solrj导入所有数据。我只想将所有修改/添加的数据导入到表中,以使用Solrj Client反映到Apache Solr中。 – 2015-03-03 11:19:13

+0

我不能想办法做到这一点,除了应用程序(批处理或交互式)在更新数据库的同时更新Solr索引。 – Yann 2015-03-03 12:08:49

回答

0

很久以前,我一直处于类似的情况,Oracle数据库被索引,许多修改来源无法更改。 最终设计是要编制索引的表上的触发器,用于报告已更改或添加到队列的所有记录。该队列不是由专用进程来轮询更新Solr。

如果您拥有对修改源的控制权,那么修改流程以更新事务内的Oracle记录和Solr索引要简单得多。