JavaRest 高级客户端简介

elasticsearch 存在三种Java客户端。

  1. Transport Client
  2. Java Low Level Rest Client(低级rest客户端)
  3. Java High Level REST Client(高级rest客户端)
    这三者的区别是:

*TransportClient没有使用RESTful风格的接口,而是二进制的方式传输数据。
*ES官方推出了Java Low Level REST Client,它支持RESTful。但是缺点是因为TransportClient的使用者把代码迁移到Low Level REST Client的工作量比较大。
*ES官方推出Java High Level REST Client,它是基于Java Low Level REST Client的封 装,并且API接收参数和返回值和TransportClient是一样的,使得代码迁移变得容易 并且支持了RESTful的风格,兼容了这两种客户端的优点。强烈建议ES5及其以后的 版本使用Java High Level REST Client。

准备工作:新建工程,引入依赖
JavaRest 高级客户端简介_第1张图片

快速入门
新增和修改数据
插入单条数据:
HttpHost : url地址封装
RestClientBuilder: rest客户端构建器
RestHighLevelClient: rest高级客户端
IndexRequest: 新增或修改请求
IndexResponse:新增或修改的响应结果
JavaRest 高级客户端简介_第2张图片

如果ID不存在则新增,如果ID存在则修改。
批处理请求: BulkRequest: 批量请求(用于增删改操作)
BulkResponse:批量请求(用于增删改操作)
JavaRest 高级客户端简介_第3张图片

匹配查询
SearchRequest: 查询请求对象
SearchResponse:查询响应对象
SearchSourceBuilder:查询源构建器
MatchQueryBuilder:匹配查询构建器

示例:查询商品名称包含手机的记录。
JavaRest 高级客户端简介_第4张图片

布尔与词条查询
BoolQueryBuilder:布尔查询构建器
TermQueryBuilder:词条查询构建器
QueryBuilders:查询构建器工厂
示例:查询名称包含手机的,并且品牌为小米的记录
JavaRest 高级客户端简介_第5张图片

过滤查询
示例:筛选品牌为小米的记录
JavaRest 高级客户端简介_第6张图片

分组(聚合)查询
AggregationBuilders:聚合构建器工厂
TermsAggregationBuilder:词条聚合构建器
Aggregations:分组结果封装
Terms.Bucket: 桶
示例:按商品分类分组查询,求出每个分类的文档数
JavaRest 高级客户端简介_第7张图片

你可能感兴趣的:(java)