具有当前Elasticsearch版本的Spring Boot应用程序


问题内容

我最近尝试将elasticsearch纳入我的一个项目。因此,我寻找了这样做的不同可能性。使用a)传输客户端(内部协议集群节点也用于通信=我的理解)或b)将其全部实现为我自己的REST
HTTP调用,基本上是归结为。

由于b)看起来不是一个不错的选择,无论如何我都习惯于弹簧化数据,我尝试使用spring-data-
elasticsearch进行了更新,该版本最近更新到了3.0.0版,以支持es 5.5.0,这是最后一个版本版本很旧。

好吧,我尝试了所有事情,但没有设法使其与我的项目一起工作,因为这似乎确实是一种依赖关系。我的项目太大,我无法将其升级到Spring Boot
2.0.0M4,我认为它需要支持新的spring-data-elasticsearch版本-是吗?

因此,有人可以就当前和未来的最佳方式提出建议,而未来如何处理spring项目中的Elasticsearch?我们真的必须自己实现整个REST
API吗?我想念什么吗?

是应该使用的REST客户端,如果使用了一个,对吗?

是兼容性图表,我知道这是老了。

谢谢!


问题答案:

不幸的是,那里有很多选择:

  • 您已经提到过运输客户。尽管(尚未)弃用,但这不是前进的方向,我不会(如果可能)开始新的项目。
  • 有一个低级REST客户端(在您链接的博客文章中提到过),该客户端已在5.0中添加,但也与旧版本兼容。虽然它可以工作,但您实际上并不想使用它,因为它的级别很低(顾名思义)。
  • 高级REST客户端刚刚随5.6一起发布 - 这是您以后要使用的功能 (它将使您与特定的Spring Boot / Data版本脱钩)。目前,它仅支持索引,删除,聚合,搜索和批量API,但是对于常规操作而言,这已经足够了。将来会添加更多的API,如果您需要执行其他任务(例如为集成测试设置特定的映射),则可以始终使用低级客户端。
  • 随着Spring Data Kay的发布,它还支持Elasticsearch5.x。如果您需要使用Spring Data,这就是您要使用的东西,但是请记住,这是一个社区项目,开发速度可能比每个人都要慢(尽管他们确实接受拉取请求;-))。正如您所发现的那样,您将需要使用Spring Boot 2来内置Spring Data Kay。这可能是升级的好理由,或者对您来说可能是一个障碍。