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 ...
随机推荐
- EMR StarRocks 极速数据湖分析原理解析
简介:数据湖概念日益火热,本文由阿里云开源大数据 OLAP 团队和 StarRocks 数据湖分析团队共同为大家介绍" StarRocks 极速数据湖分析 "背后的原理. [首月9 ...
- [GF] 与 Laravel 设计相近的 Golang 框架 GoFrame
在 GoFrame (gogf/gf) 框架中有明确的代码分层设计,分别是 api, service, dao, model. model (结构模型)一般由工具自动生成,用于定义数据结构,只可被 m ...
- SQL Server实战三:数据库表完整性约束及索引、视图的创建、编辑与删除
本文介绍基于Microsoft SQL Server软件,实现数据库表完整性约束.索引与视图的创建.编辑与删除等操作的方法. 目录 1 交互式为数据库表S创建PRIMARY KEY约束 2 交互式 ...
- SAP集成技术(三)接口管理的挑战
接口管理不是一个新概念,在云应用出现之前,就有接口管理问题,和混合场景相比,不同应用间的集成更为常见.经典的问题包括:哪个工具是我的使用场景中的正确选择?如何操作我的集成平台?如何设计组织?以及如何保 ...
- go-admin migrate 数据表迁移
目录 视频教程 应用场景 目录说明 数据迁移 迁移步骤 配置数据库 常用命令示例 新建模型实例 3.1 方式一:不编译运行(推荐) 3.2 方式二:编译并运行迁移 3.3 方式三:golangIDE ...
- VueJs创建网易音乐播放器和vueJs常见错误处理
学习vuejs之后,总得自己上手写一些完整的应用,才能够更加了解各个结构与组件之间的运用. 下面从最基础的准备工作开始: 用vue-cli搭建vue应用:先确保自己已经安装Node环境. (1)Win ...
- 【项目学习】Anchor:一种提供稳定币存款低波动收益率的去中心化的储蓄协议
简介 基于稳定币的获利产品. 贷方人放出稳定币以供借款.借方通过抵押资产(base asset)的方式,以低于协议定义的借贷比率借入稳定币.Anchor 协议使用抵押资产进行质押以获得奖励,然后将质押 ...
- fastposter v2.8.0 发布 电商海报编辑器
fastposter v2.8.0 发布 电商海报编辑器 fastposter海报生成器,电商海报编辑器,电商海报设计器,fast快速生成海报 海报制作 海报开发.二维码海报,图片海报,分享海报,二维 ...
- C++ placement new学习
通常创建对象使用new操作,但这样无法指定在具体某一块内存开辟空间创建对象.而如果 可以指定开辟空间的内存位置,我们可以编写内存池高效的复用同一个内存位置,这样可以避免系统频繁申请可用内存 所占用的时 ...
- 提取关键词作为标题---Java调用Python实现
目录 前景提示 思考 企业级处理方案流程图 Python 实现的方式 Java实现 导入Maven包 书写代码 最终版本 遗留问题: 遇到问题 1.无法解析. 2.模块找不到. 3.乱码处理 版本 继 ...