【问题标题】:lucene 4.6 concurrent flushinglucene 4.6 并发刷新
【发布时间】:2014-03-19 08:22:20
【问题描述】:

我已经阅读了http://blog.trifork.com/2011/04/01/gimme-all-resources-you-have-i-can-use-them/,其中提到了并发刷新,但是当我尝试查看 4.5.1 和 4.6.1 版本的 api 时,没有这样的功能,我也找不到任何示例代码。 DocumentsWriterPerThread 类不在 4.5.1-4.6.1 中

谁能提供一些关于这个问题的信息?如果还提供一个示例代码来帮助我启动,那就太好了。

谢谢

【问题讨论】:

    标签: search concurrency lucene indexing lucene.net


    【解决方案1】:

    DocumentsWriterPerThread 肯定在 Lucene 4.5 中存在,但据我所知,这并不是大多数用户真正希望得到的东西。

    至于如何使用并发刷新,你已经是了。 Lucene 4.0 中的更改消失了,请参阅 LUCENE-3023

    如 Michael McCandless 在他的article on the topic 中所述,如果您没有看到这种速度改进(不确定您观察到什么问题):

    请记住,此更改仅在您有并发硬件、使用足够多的线程进行索引并且没有其他瓶颈(例如,在提供文档的内容源中)时对您有所帮助

    【讨论】:

    • DocumentsWriterPerThread 不在 4.5.1 中,如果我没记错的话,因为我没有以某种方式找到它。此外,我们如何在编码中使用它?
    • 你错了。 DocumentsWriterPerThread 位于 Lucene Core 中的org.apache.lucene.index.DocumentsWriterPerThread。也许让您感到困惑的是它不是公共课程。它是包私有的。正如我所说,你并不是真的打算搞砸它。
    • 所以如果不应该手动使用,是否意味着当我们在多线程(多个索引编写器)中编写代码时,lucene 会自动应用这种新的并发刷新机制?
    • 这意味着您继续向 Lucene 添加文档,它将使用 DocumentWriterPerThread(多个 DWPT)同时索引文档。你不能有多个 IndexWriters。有一个 IndexWriter,但一个 IW 使用许多 DWPT。
    猜你喜欢
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多