【问题标题】:Partial indexing in Apache Solr 7.3.1Apache Solr 7.3.1 中的部分索引
【发布时间】:2019-03-11 13:40:00
【问题描述】:

我正在使用 solr 7.3.1 来索引文档。现在它正在索引引用位置中的每个文档(这非常大,接近 1 TB)。它 索引整个文件夹需要 3-4 天。并且文档每小时都在不断地被编辑、添加、删除。保持 solr 索引更新的最佳方法是什么?

【问题讨论】:

    标签: apache indexing solr


    【解决方案1】:

    创建一个小型应用程序,用于侦听存储文档的文档层次结构中的文件系统事件。

    这样,您可以在将文档写入磁盘后立即将其发送到 Solr。具体如何操作将取决于您的操作系统以及您可以编写代码的语言。Linux 下有inotify 的挂钩,您可以通过inotifywait 和bash 使用,或者您可以将inotify 用作@ 987654321@.

    这样,您可以在任何更新的文档写入磁盘后立即为其编制索引,并且您可以在常规的初始索引操作运行时执行此操作。

    但是,如果 每个 文档每小时都在更改(这意味着您必须在一小时内每小时对每个文档进行索引),那么您必须扩展您的基础架构才能对内容进行索引在一小时内尽可能快,但具体如何做到这一点将取决于许多因素(例如文档类型、可用库、项目中的其他限制等),并且可能超出了这里可以体面地回答的范围。

    【讨论】:

    • 感谢@MatsLindh 的回复。需要澄清的一件事 - 在我的系统中,并非每个文档每小时都会更新一次。那么 solr 索引是否可以自动化,如果特定文件的最后更新日期大于同一文件的 solr 索引时间戳,那么 solr 将从以前的索引中删除该文件,然后重新索引它,否则它将跳到下一个文件?
    • 您必须自己编写逻辑来处理它,但这是有可能的,当然。我可能仍然会尝试看看您是否可以使用 inotifywait 或类似的东西,因为那样会更有效。
    • 我在 windows 上使用 c#。这些文件位于通过我们 LAN 上的网络驱动器映射的 windows PC 文件夹中。所以很可能我将不得不使用接近 FileSystemWatcher 的东西来跟踪该映射目录中的更改。但问题是 solr 是否有任何 api 允许这种自动条件索引???就我浏览他们的官方文档而言,我还没有找到任何东西。如果你能在那个方面指导我,那将非常有帮助
    • 不,您必须自己编写该应用程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-28
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多