首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ElasticSearch AutoSuggest内置的REST

ElasticSearch AutoSuggest内置的REST
EN

Stack Overflow用户
提问于 2019-08-23 05:39:08
回答 1查看 178关注 0票数 1

目前,我有一个spring引导微服务,用于在MongoDB中存储项目列表。

现在,我想添加自动建议功能时,搜索项目的名称(部分/模糊搜索)。

为此,我正在考虑使用ElasticSearch内置的REST。

我的计划是每次在MongoDB中插入/更新数据时,发送POST并将其放到ElasticSearch的REST端点。

现在,webclient只需使用ElasticSearch的REST获得自动提示数据,就可以在搜索栏上输入用户类型的关键字。

这是打算使用ElasticSearch的方式吗?我们怎样才能扩大这个规模?还是使用spring和elasticsearch客户端创建一个单独的微服务来实现同样的目标呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-23 07:33:04

您可以使用这两种方法来实现这个功能,而且它实际上是一个基于意见的问题,但是我仍然会根据我的经验尝试列出利弊。

--我在这里假设,mongoDB是数据的真实来源,ES仅用于搜索。

在更新mongo之后,在同一个应用程序中更新ES(Elasticsearch)。

这将节省微服务带来的额外开销:像部署另一个应用程序,下面,释放包含mongo和ES应用程序使用的相同POJO或实体的jar。的主要开销是额外的网络跃点,就像,如果在本例中的中,一旦更新在mongo应用程序中成功,那么您将把请求发送给ES应用程序,该应用程序依次更新elasticsearch应用程序,您可以将请求并行发送到Elasticsearch应用程序,但这将导致不一致性,因为在MongoDB中更新可能失败,因此ES和MongoDB将不同步。

为弹性搜索创建单独的微服务

只要您管理好您的真理源和elasticsearch之间的一致性,就会给您带来微服务的典型好处,例如分离关注点、更快的发布周期、不太复杂的代码、语言和框架的选择等,以及提高开发人员的生产力等等。

再说一遍,你的问题并不是专门针对elasticsearch的,它更像是一个微服务和monolith,它完全取决于您的用例,您可以在网上找到很多争论,但是一个您肯定应该关注的问题,也是我最喜欢的一个是优步架构师对将其扩展到1000家微服务感到遗憾。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57620404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档