如何同步Solr导入过程?

时间:2012-08-13 16:18:36

标签: java solr lucene indexing solrj

如何同步Solr delta导入过程?几个线程运行delta导入。如果在导入期间再运行一次导入,则第二次运行将被忽略,数据将不会更新。

我的目的是等待第二次完成第一次delta导入。

Delta导入通过HTTP运行,因此我不知道如何检查它何时完成。

用途:Solr 4.0,SolrJ

2 个答案:

答案 0 :(得分:3)

您可以使用url http://host:port/solr/dataimport?command=status或甚至不使用任何命令来轮询dataimporthandler的状态,因为status是默认状态。这样您就可以获得有关dataimport进程的一些详细信息,您可以查看它是否仍在进行中。看看available commands

答案 1 :(得分:1)

好像你可以用这个做点什么

http://wiki.apache.org/solr/DataImportHandler#EventListeners

如果您可以使用它来维护“importInProgress”布尔标志,您可以在您自己的代码中扩展或包装数据导入处理程序类,并返回您自己的自定义响应以指示系统正忙。这样你就永远不会有两个导入处理。根据javanna轮询状态听起来会受到竞争条件的影响。