【问题标题】:Hibernate Search Automatic IndexingHibernate 搜索自动索引
【发布时间】:2012-05-26 03:24:24
【问题描述】:

我正在开发一个可以满足每天大约 100,000 次搜索的应用程序。我们可以安全地假设每天数据库中的更新/插入/删除数量大致相同。当前应用程序使用原生 SQL,我们打算将其迁移到 Hibernate 并使用 Hibernate Search。

由于数据库记录不断变化,我们需要启用自动索引。管理层担心自动索引可能造成的性能影响。

不可能有计划的批量索引,因为记录中的更改必须在更改后立即可供搜索。

我已经搜索过某种性能统计信息,但没有找到。

任何已经在 Hibernate Search 工作并面临类似情况的人可以分享他们的想法吗?

感谢您的帮助。

问候,

沙杜尔。

【问题讨论】:

    标签: performance search indexing hibernate-search


    【解决方案1】:

    它可能工作正常,但如果没有基线就很难猜测。我每天进行更多搜索的经验,并且经过一些微调后效果很好,但是如果不尝试就不可能知道这是否适用于您的场景。 如果正常调优失败并且 NRT 不能足够快地证明,您可以随时对索引进行分片,使用多主配置并插入分布式二级缓存,例如 Infinispan:所有组合架构都可以实现线性可扩展性,前提是您有设置它的时间和合理的硬件。

    很难说您需要什么样的硬件,但可以肯定的是,它比原生 SQL 解决方案更高效。我建议做一个 POC,看看你在单个节点上能走多远;如果您的查询类型非常适合 Lucene,您可能只需要一台服务器即可。请注意,Lucene 在查询中比在更新中快得多,因此,由于您估计您将拥有相同数量的写入和搜索,因此问题不太可能在于每秒搜索量,而是每秒写入(更新)和总数据(索引)大小。最新的 Hibernate Search 引入了 NRT 索引管理器,非常适合此类用例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-06
      • 2016-07-17
      • 2014-11-12
      • 2023-03-24
      相关资源
      最近更新 更多