n. Elasticsearch JAVA API操作
引言
Elasticsearch所支持的客户端连接方式有两种
- Transport 连接
底层使用socket连接,用官方提供的TransPort客户端,网络IO框架使用的是netty - Http连接(Rest Client)
采用Http请求的方式,访问Elasticsearch.
注意:ES的发展规划中在7.0版本开始将废弃 TransportClient,8.0版本中将完全移除 TransportClient,取而代之的是High Level REST Client。
Rest Client
在Elasticsearch官方提供了两种基于Http连接的Rest Client
- Java Low Level REST Client
Elasticsearch 的官方低级客户端。它允许通过 http 与 Elasticsearch 集群通信。将请求编组和响应取消编组给用户。它与所有 Elasticsearch 版本兼容。 - Java High Level REST Client
Elasticsearch 的官方高级客户端。基于低级客户端,它公开 API 特定方法并处理请求编组和响应解组。
spring-data-elasticsearch
本文教程在Spring Boot框架中使用Rest Client,而Spring Boot已经帮我们集成好了用于ES操作的spring-data-elasticsearch
在spring-data-elasticsearch中我们可以发现一个核心的操作类ElasticsearchRestTemplate,而它是基于Java High Level REST Client的二次封装

Spring Boot中配置
在Spring Boot中用于操作ES的Start的Maven pom配置如下,它的version版本受Spring Boot版本控制,所以我们一般不需要指定其版本
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
application.yml配置文件
##如果为elasticsearch配置了安全账号和密码,需要指定其username和password,urls是配置集群内部的主机地址
spring:
elasticsearch:
rest:
uris: http://192.168.31.100:9200
connection-timeout: 10000
到此为止,Spring Boot集成elasticsearch操作,就已经完成了,是不是有点So easy的感觉啦?
实体映射
这一点操作跟JPA是一模一样的方式,通过在实体类上的注解,而自动创建其mapping

对于实体类里的每一个字段,我们可以为其指定@Field注解,并设置其相关值,而建立对应的mapping映射关,如果没有指定它在ES中映射类型,则会自动为其生成类型。

继承接口
映射(map)关系也建立好了,现在还需要为每个实体创建一个Repository,而这些操作都是spring为我们提供的,为我们生成最基础的CRUD操作,跟Mybatis-plus的操作是一模一样

我们只需要创建一个接口,通过该接口继承ElasticsearchRepository这个泛型接口,在泛型中指定对应的实体类,是不是有点像是Mybatis-plus中的BaseMapper?
至此,实际上我们一行操作ES的代码都没有编写,就已经建立好了实体与ES中数据的映射关系和在ES中操作实体的CRUD基础操作。

在其它地方需要使用的时候,直接注入这个Repository接口就行,Spring会为我们自动生成代理类。
n. Elasticsearch JAVA API操作的更多相关文章
- Elasticsearch java api操作(二)(Java High Level Rest Client)
一.说明: 一.Elasticsearch提供了两个JAVA REST Client版本: 1.java low level rest client: 低级别的rest客户端,通过http与集群交互, ...
- Elasticsearch java api操作(一)(Java Low Level Rest Client)
一.说明: 一.Elasticsearch提供了两个JAVA REST Client版本: 1.java low level rest client: 低级别的rest客户端,通过http与集群交互, ...
- Elasticsearch java api 基本搜索部分详解
文档是结合几个博客整理出来的,内容大部分为转载内容.在使用过程中,对一些疑问点进行了整理与解析. Elasticsearch java api 基本搜索部分详解 ElasticSearch 常用的查询 ...
- 第08章 ElasticSearch Java API
本章内容 使用客户端对象(client object)连接到本地或远程ElasticSearch集群. 逐条或批量索引文档. 更新文档内容. 使用各种ElasticSearch支持的查询方式. 处理E ...
- Elasticsearch Java API深入详解
0.题记 之前Elasticsearch的应用比较多,但大多集中在关系型.非关系型数据库与Elasticsearch之间的同步.以上内容完成了Elasticsearch所需要的基础数据量的供给.但想要 ...
- Elasticsearch Java API 很全的整理
Elasticsearch 的API 分为 REST Client API(http请求形式)以及 transportClient API两种.相比来说transportClient API效率更高, ...
- hive-通过Java API操作
通过Java API操作hive,算是测试hive第三种对外接口 测试hive 服务启动 package org.admln.hive; import java.sql.SQLException; i ...
- [搜索]ElasticSearch Java Api(一) -添加数据创建索引
转载:http://blog.csdn.net/napoay/article/details/51707023 ElasticSearch JAVA API官网文档:https://www.elast ...
- Elasticsearch java api 常用查询方法QueryBuilder构造举例
转载:http://m.blog.csdn.net/u012546526/article/details/74184769 Elasticsearch java api 常用查询方法QueryBuil ...
- hadoop2-HBase的Java API操作
Hbase提供了丰富的Java API,以及线程池操作,下面我用线程池来展示一下使用Java API操作Hbase. 项目结构如下: 我使用的Hbase的版本是 hbase-0.98.9-hadoop ...
随机推荐
- ADBPG&Greenplum成本优化之磁盘水位管理
简介:本文我们将通过一个实际的磁盘空间优化案例来说明,如何帮助客户做成本优化. 作者 | 玉翮 来源 | 阿里技术公众号 一 背景描述 目前,企业的核心数据一般都以二维表的方式存储在数据库中.在 ...
- Spring官方RSocket Broker 0.3.0发布: 快速构建你的RSocket架构
简介:Spring官方的RSocket Broker其实开发已经非常久了,我以为会伴随着Spring Cloud 2021.0发布的,但是没有发生.不过Spring RSocket Broker还是 ...
- Quick BI V4.0功能“炸弹”来袭,重磅推出即席分析、模板市场、企业微信免密登录等强势功能
简介: 2021年7月,Quick BI公共云版本迭代新功能:重磅推出即席分析.模板市场,分析门槛再降低:推出企业微信无缝对接,移动端类目个性配置及管理提升多端能力:数据建模配置交互升级至拖拽模式提升 ...
- DataWorks 功能实践速览
简介: DataWorks功能实践系列,帮助您解析业务实现过程中的痛点,提高业务功能使用效率! 功能推荐:独享数据集成资源组 如上期数据同步解决方案介绍,数据集成的批数据同步任务运行时,需要占用一定 ...
- dotnet 读 WPF 源代码笔记 了解 WPF 已知问题 用户设备上不存在 Arial 字体将导致应用闪退
本文来告诉大家 WPF 已知问题,在用户的设备上,如果不存在 Arial 字体,同时安装了一些诡异的字体,那么也许就会让应用在使用到诡异的字体的时候,软件闪退 在 WPF 的 FontFamily.c ...
- HarmonyOS 鸿蒙隔离层设计
在软件开发中,底层库的更换或升级是常见的需求,这可能由性能提升.新功能需求或安全性考虑等因素驱动.为了降低迁移成本,良好的设计模式至关重要. 在版本迭代过程中,网络请求库可能会经历从A到B再到C的演进 ...
- Java中HTTP下载文件——并解决跨域
1.常用的需要设置的MIME类型 任何文件(二进制文件) application/octet-stream .doc application/msword .dot application/mswor ...
- 一个用Python将视频变为表情包的工具
这是一个将视频转变为表情包的工具,现实生活中当我们看到一段搞笑的视频,我们可以将这段视频喂给这段程序,生成gif表情包,这样就可以用来舍友斗图了 1.一些限制 1.这个程序不能转化超过15秒以上的视频 ...
- 显示器AVG、DVI、HDMI、DisplayPort、Type-C、雷电接口
在近十年的发展,显示设备的接口发生了巨大的改变.以前使用比较多的是蓝色VGA接口,接著出现了白色的DVI接口,当遇到不同接口时,还得买转接头进行转接.后来,又有了HDMI等接口,现在则出现DP和USB ...
- grads 同时读取多个ctl文件方法
1.不同的文件进行不同的设置:'set dfile 2' 2.读取不同文件的变量:qv.2 实例如下:'reinit''open e:\tskt.CTL''open e:\uwnd.CTL''open ...