在上篇文章中,我们详细的介绍了如何在 ES 中精准的实现嵌套json对象查询?
那么问题来了,我们如何在后端通过技术方式快速的实现 es 中内嵌对象的数据查询呢?
为了方便更容易掌握技术,本文主要以上篇文章中介绍的通过商品找订单为案例,利用 SpringBoot 整合 ES 实现这个业务需求,向大家介绍具体的技术实践方案,存入es中的json数据结构如下:
废话也不多说了,直接上代码!
二、项目实践 2.1添加依赖在SpringBoot项目中,添加rest-high-level-client客户端,方便与 ES 服务器连接通信,在这里需要注意一下,推荐客户端的版本与 ES 服务器的版本号一致,不然会出现接口请求错误等异常!
小编本次安装的ES服务端版本号为6.8.2,因此客户端也保持6.8.2,与之一致!
2.2配置 es 客户端为了更佳方便的使用 es,我们可以将其各个配置类进行封装,方便后续进行维护。
在application.properties配置文件中,定义 es 配置连接地址; 创建ElasticSearch配置类,方便SpringBoot启动时注入; 封装ElasticSearch客户端服务类,方便公共调用处理 2.3初始化索引结构在使用 es 对订单进行查询搜索时,我们需要先定义好对应的订单索引结构,内容如下:
2.4向 es 中同步文档数据索引结构创建好之后,我们需要将支持 es 搜索的订单数据同步进去。
将指定的订单 ID 从数据库查询出来,并封装成 es 订单数据结构,保存到 es 中!
2.5内嵌对象查询内嵌对象查询分两种形式,比如,第一种通过商品、品牌、价格等条件,分页查询订单数据;第二种是通过订单ID、商品、品牌、价格等,分页查询订单项数据。具体的实践,请看下文。
通过商品、品牌、价格等条件,分页查询订单数据;
通过订单ID、商品、品牌、价格等,分页查询订单项数据;
三、小结本文主要以通过商品名称查询订单数据为案例,介绍利用 SpringBoot 整合 es 实现数据的高效搜索,内容如果难免有些遗漏,欢迎网友指出!