我们有一个基于微服务的应用程序,它是在 Boot 中开发的。和C编写。前端使用Angular编写,后端由MySQL数据库和Hibernate for ORM组成。我们需要实现全文搜索功能,该功能将在UI上提供一个搜索框,用户可以在其中输入所选的文本。搜索必须能够从所有3个微服务的数据库中返回数据。我在最终确定相同的搜索技术方面面临着困难。在我的职权范围内的一些技术是
1.休眠搜索
- Apache解决方案
1.ElasticSearch
哪种技术是解决这个问题的最佳技术?如果可能的话,有没有类似的例子?
2条答案
按热度按时间643ylb081#
Hibernate search看起来依赖于内部搜索解决方案,它可以提供全文搜索,这可能是普通的Apache Lucene或Elasticsearch。我不确定,但它的Elasticsearch集成,如果它已经成熟,作为version 6.0仍在开发阶段。
Hibernate search i.e. 5.11的较旧/稳定版本支持Elasticsearch 2.0到5.6。
但是看看你的查询,这取决于你使用的情况。也许下面的几点会对你有所帮助。
Solr和Elasticsearch都是很棒的技术,但如果你必须使用其中之一,我强烈建议使用Elasticsearch,因为它会在上述所有查询中帮助你,功能更强大的分布式模型,它有自己令人惊叹的DSL,非常成熟且易于使用,有优秀的管理工具/API用于数据管理,它的设置非常快速和简单,更不用说它的聚合查询了,它可以帮助你获得关于你已经摄取的文档的分析信息。
您还可以通过Kibana设置自己的 Jmeter 板,这将帮助您快速创建一些伟大的可视化工具。
优点是它本质上是完全RESTful的,这意味着它可以让您的应用程序部署变得更加轻松。我建议您从here开始,花点时间了解这项技术。
希望这对你有帮助!
umuewwlo2#
对于全文搜索,Elasticsearch和Apache Solr是给定选项中的最佳选择。
然而,我强烈反对在不了解更多商业案例信息的情况下,Elasticsearch比Solr或其他方法更好。这两种技术对给定问题的表现是一样的,因为它们都构建在Apache Lucene搜索引擎上。
他们都提供了很好的REST客户端。
Here你可以在同一个Java项目中查看Apache Solr和Elasticsearch的示例实现。你也可以查看它们有什么不同,你更喜欢哪一个。
此外,还有六篇关于如何使用Apache Solr和Elasticsearch编写here的文章。最后一章是关于研究的,研究表明这两个引擎几乎是平等的,只有在非常具体的商业案例中才有区别。两者都有许多支持工具。