gpt4 book ai didi

java - Hibernate Search(Lucene 索引)如何工作?

转载 作者:行者123 更新时间:2023-11-30 05:50:08 25 4
gpt4 key购买 nike

我正在使用建立在 Lucene 索引之上的 Hibernate Search。如果针对数据库表创建索引,则返回结果的性能会很好。

我的问题是,一旦创建了索引,如果我们查询结果,Hibernate Search 会使用创建的索引从原始数据库表中获取结果吗?还是不需要访问数据库来获取结果?

谢谢!

最佳答案

除非你使用 Projections索引仅用于识别与查询匹配的主键集,然后用于从数据库加载实体。

这有很多很好的理由:

  • 正如您所指出的,我们不会将所有数据都存储在索引中:索引越大,索引越慢
  • 将所有需要的元数据添加到索引会使索引成为一项非常昂贵的操作
  • 从索引中提取值根本不高效:它擅长查询,仅此而已
  • 关系型数据库非常擅长通过主键加载数据
  • 如果你的数据库不够好,二级缓存非常适合通过主键加载
  • 通过从数据库加载,我们保证了一致性,尤其是异步索引
  • 通过从数据库加载,您可以让实体参与事务和隔离

也就是说,如果您不需要完全托管的实体,您可以使用投影来加载您注释为 Stored.YES 的字段。一种常见的模式是使用投影提供匹配项预览,然后在用户单击以获取详细信息时加载与该结果匹配的完整实体。

关于java - Hibernate Search(Lucene 索引)如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14560729/

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