gpt4 book ai didi

lucene - 如何处理多个IndexWriter和多个跨进程IndexWriter

转载 作者:行者123 更新时间:2023-12-04 14:47:40 25 4
gpt4 key购买 nike

我在谷歌上搜索了两天......我真的需要帮助。

我有一个具有多个线程的应用程序,试图使用 IndexWriter 的打开/关闭来更新 lucene 索引。每次更新。线程可以随时启动。

是的,write.lock 的问题!所以可能有两种或多种解决方案:

1) 检查 IndexWriter.IsLocked(index)如果它被锁定以 sleep 线程。
2) 打开 IndexWriter永远不要关闭它。问题是我有另一个使用相同索引的应用程序。另外我应该什么时候关闭索引并完成整个过程?

这里有有趣的帖子
Lucene IndexWriter thread safety
Lucene - open a closed IndexWriter

更新:
整整 2 年后,我做了一个包含 this 的 rest API并且所有写入和读取都被路由到 API。

最佳答案

多线程,同一个进程:

保留您的 IndexWriter打开,并跨多个线程共享它。 IndexWriter是线程安全的。

对于多个进程,您的解决方案 #1 容易出现竞争条件问题。您需要使用命名 Mutex安全地实现它:
http://msdn.microsoft.com/en-us/library/bwe34f1k.aspx

话虽如此,我个人会选择一个专门用于写入索引的进程,并使用诸如 WCF 之类的东西与它进行通信。

关于lucene - 如何处理多个IndexWriter和多个跨进程IndexWriter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12374688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com