Elasticsearch 实战 - 第三讲:ES 基本操作、批处理

Elasticsearch 实战系列文章:

1:Elasticsearch 实战 - 第一讲:简介以及安装
2:Elasticsearch 实战 - 第二讲:kibana 安装以及ES 的概念名词
3:Elasticsearch 实战 - 第三讲:ES 基本操作、批处理
4:Elasticsearch 实战 - 第四讲:ES 高级查询
5:Elasticsearch 实战 - 第五讲:Java 集成 Spring Data Elasticsearch(一):简介及环境搭建
6:Elasticsearch 实战 - 第六讲:ES 项目实战(二):基本操作、批处理、高级查询

导读: 上篇博客讲了关于 Elasticsearch 的安装以及部署,接下来本篇博客主要讲的是Elasticsearch 的 基本操作、批处理。

一:ES的基本操作

1、索引操作

1.1、建立索引

语法:PUT /索引名 在没有特殊设置的情况下,默认有5个分片,1个备份,也可以通过请求参数的方式来指定.。
参数格式

PUT /user
{ 
  "settings": {
    "number_of_shards": 5	//设置5个片区
    , "number_of_replicas": 1	//设置1个备份
  }
}

1.2、删除索引

语法:DELETE /索引名

DELETE /user

1.3、查询索引

语法:GET /索引名

GET /user

2、映射操作

2.1、建立映射

语法:PUT /索引

PUT /user
{ 
  "mappings": { 
  "user": { 
    "properties": { 
      "name": { 
        "type": "text"
        }
      } 
    } 
  } 
}

字段类型 type:double / long / integer / text / keyword / date / binary

注意:text和keyword都是字符串类型,但是只有text类型的数据才能分词,字段的配置一旦确定就不能更改 映射的配置项有很多,我们可以根据需要只配置用得上的属性.

2.2、查询映射

语法:GET /索引名/_mapping

3、基本操作-CRUD

3.1、新增和替换文档

语法:PUT /索引名/类型名/文档ID
参数格式:

PUT /user/user/1
{
  "id":1,
  "name":"战三",
  "age":18
}

注意:

  • 新增和替换文档时需要使用标准的JSON格式,不能使用简版的JSON 格式
  • POST 操作也可以对文档进行新增和删除操作。他们的唯一区别就在于PUT 请求是硬着陆,会把文档中的属性全部强制更新(如:_id、_version等)。POST 请求 和 DEPETE 不会重置_verison,只会在其基础上+1
  • 一般推荐使用的是PUT 进行文档的更新和替换,POST 用的比较少。POST操作可以不指明文档的ID,但是我们存在ES中的数据一般都是转存过来的,不会自动生成,故不推荐使用POST。
  • 当索引/类型/映射不存在时,会使用默认设置自动添加。 ES中的数据一般是从别的数据库导入的,所以文档的ID会沿用原数据库中的ID 索引库中没有该ID对应的文档时则新增,拥有该ID对应的文档时则替换。

每一个文档都内置以下字段

  • _index:所属索引
  • _type:所属类型
  • _id:文档ID
  • _version:乐观锁版本号
  • _source:数据内容

以下是PUT和POST 两种新增文档的区别:
在这里插入图片描述
在这里插入图片描述

3.2、删除文档

语法:DELETE /索引名/类型名/文档ID
示例如下:

DELETE /user/user/1

注意:这里的删除并且不是真正意义上的删除,仅仅是清空文档内容而已,并且标记该文档的状态为删除。

3.3、查询文档

语法:

  • 查询所有(基本查询语句): GET /索引名/类型名/_search
GET /product/product/_search
  • 根据ID查询: GET /索引名/类型名/文档ID
GET /product/product/1

查询所有结果中包含以下字段:

  • took:耗时
  • _shards.total:分片总数
  • hits.total:查询到的数量
  • hits.max_score:最大匹配度
  • hits.hits:查询到的结果
  • hits.hits._score:匹配度
    在这里插入图片描述
    在这里插入图片描述

二 、批处理

1、简介

当需要集中的批量处理文档时,如果依然使用传统的操作单个API的方式,将会浪费大量网络资源,Elasticsearch为了提高操作的性能,专门提供了批处理的API。

2、bulk批量增删改

语法

POST /索引名/类型/_bulk 
	{ 动作:{"_id": 文档ID}}
	{...} 
	{动作:{"_id": 文档ID}}
	 {...}	

动作:create / update / delete,其中delete只有1行JSON,其他操作都是有2行JSON,并且JSON不能格式化(即不能换行),如 果是update动作,它的数据需要加个key为doc
如:{“update”: {“_id”: xx}} {“doc”: {“xx”:xx, “xx”:xx}}
示例如下:

#批量增删改user对象
POST /user/user/_bulk
{"create":{"_id":"3"}}
{"id":"3","name":"张三","age":18,"address":"湖南省","mobile":"17666555910","sex":"1"}
{"update":{"_id":"1"}}
{"doc":{"id":"1","name":"星华","age":17,"address":"广东省","mobile":"17666555910","sex":"1"}}
{"delete":{"_index":"user","_type":"user","_id":2}}

3、mget批量查询

语法:

 GET /索引名/类型/_mget
 { 
       "docs": [ 
              {"_id": 文档ID}, 
               ...
           ] 
}

示例如下:

#批量查询
GET /user/_mget
{
  "docs":[
      {"_id":"1"},
      {"_id":"3"}
    ]
}

更多资讯请扫描以下二维码或关注微信公号“愿为最亮星”,为您提供更深层次的解答。
在这里插入图片描述

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

华星详谈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值