我需要为Oracle等关系数据库创建搜索引擎。我必须在Elastic Search的帮助下创建一个搜索引擎。经过一周的分析仍然不确定;我应该遵循什么样的架构来满足这一要求。
Spring boot-spring data-elasticsearch
Spring data-elasticsearch
Spring boot-hibernatesearch
在此之后,我已经浏览了这个网站,以便对hibernate搜索有所了解。
http://hibernate.org/search/releases/5.9/
还不是很清楚我必须遵循哪一个来实现关系数据库的搜索引擎。有什么建议。?
搜索引擎就像附加的搜索组件一样。
答案 0 :(得分:1)
如果您的问题是关于是否使用Spring-Data或Hibernate Search,那么您可能需要查看my answer to this other question。
引用:
我显然有偏见,因为我是一名Hibernate开发人员,但我可以 至少提供一些专注于Hibernate Search的元素。至于哪个 是“更好”,这是你判断的。
主要区别在于Hibernate Search提供了集成 在JPA和您选择的索引之间(Lucene或Elasticsearch):
- Hibernate Search会根据JPA实体的变化自动添加/更新/删除全文索引中的文档(如 一旦你提交了一笔交易)。
- Hibernate Search将允许您构建全文查询(全文世界),并将结果检索为托管实体(JPA 世界)。
据我所知,Spring-Data-Elasticsearch专注于 访问Elasticsearch并且没有任何JPA集成。那是 要说,你可以使用Spring-Data-JPA,你可以使用 Spring-Data-Elasticsearch,但它们不会相互通信。 您将有两个单独的模型,您将更新和查询 分开。
其他一些要素:
- 如果您不需要分布式索引,Hibernate Search可以在嵌入式Lucene模式下运行,而不需要所有Elasticsearch堆栈。它会 可能更轻巧。
- Hibernate Search 当前在自定义Elasticsearch映射或使用高级Elasticsearch时不是很灵活 功能,因为抽象层。这将改变 未来,虽然(Hibernate Search 6)。
- Spring-Data-HibernateSearch模块正在开发中,可以从两全其美的优势中受益。它尚未发布 但是,目前还没有很好的文档记录: https://github.com/snowdrop/spring-boot-hibernate-search-booster