Ste*_*ven 10 lucene solr hibernate hibernate-search elasticsearch
我了解并理解Elasticsearch,Apache Solr和Hibernate Search都基于Apache Lucene库.它们提供快速的全文搜索,所有这些都使用JPA注释,实现JPA和/或定义自定义注释.它们主要用于RDBMS/NoSQL数据存储.索引和可搜索的数据以文档的形式存在.
我完全可以,有人提出Solr vs Hibernate Search的问题- 选择何时以及何时?甚至'Elasticsearch vs Solr'或'Elasticsearch vs Hibernate Search'但是有一个Hibernate Search/Elasticsearch连接器作为一种使用Hibernate Search 和 Elasticsearch 的方法,或者这篇文章询问"如何将Hibernate和Solr集成在一起?" 答案如何将Hibernate Search和Solr集成在一起,这对我来说是不同的,对吧?
假设上述摘要是正确的,并且链接的帖子让我感到困惑:除了Hibernate Search之外,为什么人们会考虑或者使用Elasticsearch或Solr?这不是多余的吗?或者Hibernate Search是否为Solr/Elasticsearch提供了Hibernate ORM不具备的任何接口,因此仅用作某种适配器?
我没有实现elasticsearch,但我认为它是Hibernate搜索的后端.
我在Hibernate搜索中遇到的一个问题是,如果我在独立模式下运行8个JBoss服务器的集群,默认情况下它们在本地文件系统上都有一个单独的索引.当通过休眠进行更改时,它只更新该单个节点上的索引.要使所有索引保持最新变得困难.
为了解决这个问题,我们一直在研究在集群配置中运行Hibernate搜索的推荐方法,但事实证明这种方法很难正常运行.使用elasticsearch,我们可以将搜索服务器移到Web应用程序之外并单独管理它,而无需更改任何旧的Hibernate Search代码.
请注意:以前的答案很好,但已经过时了很多年。
Hibernate Search 现在与 Elasticsearch 有了很好的集成,因此您可以像其他人建议的那样享受与 Hibernate 集成的好处,同时仍然拥有 Elasticsearch 的好处。
与 Apache Solr 的集成也应该是可能的,但这尚未实现,团队将需要这方面的帮助。
希望在完成了解耦的艰苦工作并让 Elasticsearch 集成成为一个选项后,事情应该会变得更容易。
根据我以前的经验,我从 Hibernate Search 迁移到 Elasticsearch,而没有保留 Hibernate Search 中的任何内容(我的意思是注释)。
我认为使用 Jackson 将 bean 序列化为 JSon 非常容易,不需要复杂的事情。一旦你有了Json文档,只需将其发送到elasticsearch就可以了。
也就是说,我保留了老式的 SQL 搜索,以防我需要对 Elasticsearch 集群进行一些维护操作。但是如果你将elasticsearch嵌入到你的webapp中(假设你没有那么多数据需要管理),那么你就不需要考虑它了。
我的2分钱
| 归档时间: |
|
| 查看次数: |
8990 次 |
| 最近记录: |