基于Spring Boot微服务的应用程序中的全文搜索功能

问题描述 投票:0回答:1

我们有一个在Spring Boot中开发的基于微服务的应用程序。让我们假设有3个微服务A,B和C。前端使用Angular编写,后端包括MySQL数据库和针对ORM的Hibernate。我们需要实现全文搜索功能,该功能将在UI上具有一个搜索框,用户可以在其中输入自己选择的文本。搜索必须能够从所有3个微服务的数据库返回数据。我在最终确定相同搜索技术时面临着困难。我拥有的一些技术是

  1. 休眠搜索
  2. Apache Solr
  3. ElasticSearch

哪个是解决此问题的最佳技术?如果可能,是否有相同的示例?

mysql spring-boot lucene microservices hibernate-search
1个回答
0
投票

Hibernate search内部取决于Apache Lucene。我不确定,但如果它已经成熟为version 6.0,它的Elasticsearch集成仍处于开发阶段。

Hibernate search i.e. 5.11的较旧/稳定版本支持Elasticsearch 2.0至5.6。

但是查看您的查询,这取决于您使用的用例。也许以下几点对您有帮助。

  • 您拥有的数据大小是多少,文档/数据的预期增长率是多少。
  • 您对此应用程序的读写速率是多少?
  • 您拥有哪种类型的搜索用例?您正在寻找什么搜索功能?例如自动完成,自动建议,突出显示,多面搜索
  • 您是在寻找分布式搜索还是在使用硬件方面有限制?
  • 是否需要支持多语言搜索?
  • 是仅文本搜索就足够了,还是将来您还要对搜索日志或点击查看数据进行分析?

Solr和Elasticsearch都是很好的技术,但是如果您必须使用其中之一,我强烈建议您使用Elasticsearch,因为它可以帮助您完成上述所有查询,它拥有令人惊叹的DSL,它非常成熟。它非常快速且易于设置。

此外,它本质上完全是RESTful,因此这意味着在部署应用程序时,您的工作变得更轻松。

希望这会有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.