我目前正在开发一个项目,在将其插入Lucene.Net之前为很多文档编制索引(进程缓慢)。
为了使索引更快,我想复制Windows服务,只保留一个线程进入我的服务。这意味着我将拥有多个IndexWriter,由于锁定,这是不可能的。服务也不会在同一台服务器上,这意味着共享内存是不可能的。
有没有办法安全地做到这一点?如果是的话怎么做?
提前感谢您的回答。
莱尼
答案 0 :(得分:1)
每个作家都应该写到他们自己的目录,你可以使用IndexWriter.AddIndexesNoOptimize
将它们合并为最后一步将索引数组中的所有段合并到此索引中。
这可用于并行化批量索引。大型文档集可以分解为子集合。每个子集合可以在不同的线程,进程或机器上并行编制索引。然后可以通过使用此方法合并子集合索引来创建完整索引。