2013-12-18 30 views
0

我目前正在开发一个项目,在将它插入到Lucene.Net之前,为很多文档建立索引(使用一个缓慢的过程)。Lucene.Net IndexWriter多个应用程序

为了使索引更快,我想重复windows服务,只保留一个线程到我的服务中。这意味着我将拥有多个IndexWriter,由于锁定原因,这是不可能的。此外,服务不会在同一台服务器上,这意味着共享内存是不可能的。

有什么办法可以安全地做到这一点?如果是的话该怎么做?

在此先感谢您的答案。

莱尼

+3

什么是您的硬件? IndexWriter可以处理调用AddDocument的多个线程,因此您可以运行多个处理输入并生成文档的线程。另外,文档生成速度缓慢? – sisve

+0

缓慢的部分是将Doc/Docx/PDF转换为文本,然后我需要将它添加到Lucene文档中。 我没有多线程应用程序,这意味着我最终不使用相同的IndexWriter。我仍然坚持这一点。任何想法? – Lenny32

回答

1

每一个作家应该写自己的目录,你可以如使用IndexWriter.AddIndexesNoOptimize

最后一个步骤合并在一起并将它们合并从一个数组索引进入这个指数的所有段。

这可能用于并行批量索引。大型文档集合可以分解为子集合。每个子集合可以在不同的线程,进程或机器上并行索引。然后可以通过使用此方法合并子集合索引来创建完整索引。

+0

谢谢,只要我有时间在该项目上工作,我会尝试。我会让你知道的。 – Lenny32

相关问题