阿里云ElasticSearch入门基础-增删改查

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 阿里云ElasticSearch入门基础-增删改查,基于阿里云全托管ElasticSearch,版本6.7

1. 基础语法

1.1. 系统相关

# 查看集群信息
GET / 
# 查看所有索引情况
GET /_cat/indices?v
# 查看节点
GET /_nodes/process?pretty
# 查看集群健康状态 索引级别
GET /_cluster/health?level=indices
# 查看索引恢复时间
GET /_recovery
# 索引red,如下命令查看详细原因
GET /_cluster/allocation/explain
# 允许集群使用通配符
PUT _cluster/settings
{
  "transient": {
    "action.destructive_requires_name": "false"
  }
}

1.2. 索引相关

1.2.1. 创建索引

PUT /product_info_sun
{
  "settings": {
    "number_of_shards": 5, # 不填默认索引是1个分片
    "number_of_replicas": 1 # 默认1个副本,最大为(节点-1)
  },
  "mappings": {
    "products": {
      "properties": {
        "productName": {
          "type": "text",
          "analyzer": "ik_smart"
        },
        "annual_rate":{
          "type":"keyword" # text和keyword都是文本类型,keyword默认不分词
        },
        "describe": {
         "type": "text",
         "analyzer": "ik_smart"
        }
      }
    }
  }
}


1.2.2. 删除索引

# 删除索引order
DELETE /order 
# 删除索引order1和order2
DELETE order1,order2
# 删除全部索引
DELETE _all
DELETE *
# 正则表达式匹配,删除product_info开头的索引
DELETE product_info*

1.2.3. 增加索引字段

ElasticSearch不支持修改索引,但可以添加新的字段

# 样例PUT /product_info_sun/products/_mapping
{
"properties": {
"age":{
"type": "integer"    }
  }
}


1.2.4. 修改索引配置

# 修改索引的setting配置,修改副本数为2
PUT /product_info_sun/_settings
{
    "number_of_replicas": 2
}

1.2.5. 开关索引

索引关闭会使数据flush到盘,对外不能读写,可以通过indices的status来进行判断image.png

# 关闭索引 test0621
POST /test0621/_close
# 打开索引 test0621
POST /test0621/_open

1.2.6 查看索引(排序)

# 查看集群下所有索引GET_cat/indices?v# 查看集群下所有索引并排序# 按照docs.count降序排列GET_cat/indices?v&s=docs.count:desc# 按照pri做降序,再按照docs.count做升序排列(默认升序)GET/_cat/indices?v&s=pri:desc,docs.count

1.2.7. 清除索引缓存

GET {索引名称}/_cache/clear

1.2.8. 索引只读

1.2.8.1. 使用场景

  1. 磁盘使用率超过阈值,索引自动设置为只读
  2. es实例迁移,设置只读防止在迁移后有脏数据写入旧实例的问题

1.2.8.2. 单条索引只读

# 样例
PUT /{索引名称}/_settings
{
  "index.blocks.read_only": true
}
# 或(不推荐,这个是kibana做的自动生成,取消只读的时候还是建议写全path)
PUT /{索引名称}/_settings
{
  "blocks.read_only": true
}
# 样例 设置为false 或者直接设置为 null
PUT /{索引名称}/_settings
{
  "index.blocks.read_only": false
}

1.2.8.3. 批量索引只读

  1. 需要先参考「1.1. 系统相关」的内容对通配符的使用限制进行放开
  2. 在kibana中使用`GET /_cat/indices?v&index={通配符表达式}`来验证通配符匹配上的所有索引是否符合预期
  3. 参考上文,将单条索引只读的请求中{索引名称}替换为{通配符表达式},对指定索引设置只读
# 样例
# 将product(售卖产品相关索引)均设为只读
PUT /product*/_settings
{
  "index.blocks.read_only": true
}
# 大招
PUT /_all/_settings
{
  "index.blocks.read_only": true
}


1.3. 增删改查-6.7

1.3.1. 写入数据

1.3.1.1. 写入单条

POST /{索引名}/{_type}/{主键id} # 主键id可以不添加,会自动随机生成
{
  "productName":"666",
  "age":12
}

image.png

1.3.1.2. _bulk

POST /product_info_sun/products/_bulk
{"index":{}}
{"productName":"理财产品A","annual_rate":"3.2200%","describe":"180天定期理财,最低20000起投,收益稳定,可以自助选择消息推送"}
{"index":{}}
{"productName":"理财产品B","annual_rate":"3.1100%","describe":"90天定投产品,最低10000起投,每天收益到账消息推送"}
{"index":{}}
{"productName":"理财产品C","annual_rate":"3.3500%","describe":"270天定投产品,最低40000起投,每天收益立即到账消息推送"}
{"index":{}}
{"productName":"理财产品D","annual_rate":"3.1200%","describe":"90天定投产品,最低12000起投,每天收益到账消息推送"}
{"index":{}}
{"productName":"理财产品E","annual_rate":"3.0100%","describe":"30天定投产品推荐,最低8000起投,每天收益会消息推送"}
{"index":{}}
{"productName":"理财产品F","annual_rate":"2.7500%","describe":"热门短期产品,3天短期,无须任何手续费用,最低500起投,通过短信提示获取收益消息"}

1.3.1.3. _reindex

POST _reindex
{
  "source": {
    "index": "product_info_sun",
    "size":1000,
    "query": {
      "match_all": {} 
    }
   },
  "dest": {
    "index": "product_info_sun2"
  }
}

1.3.2. 查询数据

1.3.2.1. 查询索引全部数据

GET _search
{
  "query": {
    "match_all": {}
  },
  "size":100
}

1.3.2.2. 查询某个索引数据总数

get /_cat/count/product_info_sun?v

1.3.2.3. 查询某个索引单条文档(根据主键查询)

GET /{索引名}/{_type}/id
# 样例
GET /product_info_sun/products/1

image.png

1.3.2.4. 查询某个索引全部数据

# 某个索引全部的数据
GET /product_info_sun/products/_search
# GET 后面的第一个"/"也可以不加
# size控制返回列表多少
GET product_info/products/_search
{
  "query": {
    "match_all": {}
  },
  "size":5
}

1.3.2.5. match查询某个索引

GET /product_info/products/_search
{
  "query": {
    "match": {
      "describe": "每天收益到账消息推送"
    }
  }
}

1.3.2.6. range查询某个索引

GET /product_info/products/_search
{
  "query": {
    "range": {
      "annual_rate": {
        "gte": "3.0000%",
        "lte": "3.1300%"
      }
    }
  }
}

1.3.3. 删除数据

1.3.3.1. 根据文档主键_id删除

# 用法
DELETE /{索引名}/{_type}/{索引id}
# 样例:
DELETE /product_info_sun/products/Vq-rzokBZmCAOVEgbP20

1.3.3.2. delete_by_query

POST {索引名}/{_type}/_delete_by_query
# 下面就是查询语句
{
  "query": {
    "match": {
      "productName": "产品D"
    }
  }
}

1.3.4. 修改数据

1.3.4.1. 全量修改

# 用法
PUT /{索引名}/{_type}/{主键id}
{
    数据
}
# 样例
PUT /product_info_sun/products/1
{
  "productName":"全量修改"
  ,"age":100
}

image.png

1.3.4.2. 增量修改(部分修改)

# 用法
POST /{索引名}/{_type}/{主键id}/_update
{
  "doc": {
    数据
  }
}
# 样例
POST /product_info_sun/products/1/_update
{
  "doc": {
    "age":1
  }
}

image.png

1.3.4.3. 注意事项

  1. es不同版本update语句写法不同,本样例以6.7的版本为例,7.X及其他版本具体可以参考官网文档如下所示https://www.elastic.co/guide/en/elasticsearch/reference/6.7/docs-update.html
  2. 如果文档更新时,文档数据中包含了索引mapping中没有的字段,则会按照默认规则创建索引,如果索引类型及参数不符合需求则需要先更改字段类型,再对数据做update或者insert。image.png
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
4月前
|
安全 Linux 开发工具
Elasticsearch 搜索入门技术之一
Elasticsearch 搜索入门技术之一
227 1
|
3月前
|
弹性计算 数据可视化 Ubuntu
《Palworld/幻兽帕鲁》阿里云专用服务器搭建部署从入门到精通:2024年最新教程!
随着《幻兽帕鲁》的风靡,越来越多的玩家希望拥有属于自己的游戏服务器,以获得更加稳定和私密的游戏体验。今天,就为大家带来一份详细的新手教程,教您如何在阿里云上轻松搭建《幻兽帕鲁》专用服务器。 首先,您需要一台服务器。在这里,我们推荐使用阿里云服务器。它不仅稳定可靠,而且提供了丰富的幻兽帕鲁服务器搭建模板,让您轻松上手。
61 0
|
5月前
|
JSON 自然语言处理 数据库
数据库-ElasticSearch入门(索引、文档、查询)
数据库-ElasticSearch入门(索引、文档、查询)
295 0
|
7月前
|
存储 关系型数据库 数据库
ElasticSearch深度解析入门篇:高效搜索解决方案的介绍与实战案例讲解,带你避坑
ElasticSearch深度解析入门篇:高效搜索解决方案的介绍与实战案例讲解,带你避坑
ElasticSearch深度解析入门篇:高效搜索解决方案的介绍与实战案例讲解,带你避坑
|
9天前
|
存储 开发工具 对象存储
Javaweb之SpringBootWeb案例之阿里云OSS服务入门的详细解析
Javaweb之SpringBootWeb案例之阿里云OSS服务入门的详细解析
15 0
|
23天前
|
存储 缓存 Java
阿里云OSS实战从入门到大神
说起阿里云OSS,那作用和功能都是非常强大的,它可以存放图片,音频,视频等资源文件,这些资源文件,你不必存放到服务器的硬盘里,这样既可以节省服务器硬盘空间,又可以降低服务器的读写压力,非常适合大并发的架构。
57 0
|
2月前
|
存储 对象存储 容器
阿里云OSS对象存储基础入门
阿里云OSS对象存储基础入门
92 0
|
2月前
|
弹性计算 运维 安全
手把手教你入门部署幻兽帕鲁服务器:2024年阿里云搭建幻兽帕鲁Palworld联机服务器新手教程
手把手教你入门部署幻兽帕鲁服务器:2024年阿里云搭建幻兽帕鲁Palworld联机服务器新手教程。对于热衷《幻兽帕鲁》这款开放世界生存制作游戏的粉丝而言,拥有个人游戏服务器无疑是令人心动的。这款由Pocketpair开发的游戏,在2024年1月18日推出了其抢先体验版,它凭借广阔的游戏世界和丰富的玩法——如收集神奇的生物“帕鲁”,让它们参与战斗、建造、农耕和工业生产等——赢得了大量玩家的喜爱。现在,我将为大家详细指导如何在阿里云服务器上轻松一键部署《幻兽帕鲁》的联机服务器。
1092 2
|
3月前
|
存储 关系型数据库 MySQL
ElasticSearch 入门
【2月更文挑战第7天】ElasticSearch 入门 简介 ElasticSearch 的基本概念 ElasticSearch 的查询流程 ElasticSearch 的更新流程
37 2
|
3月前
|
存储 自然语言处理 搜索推荐
ElasticSearch入门篇
ElasticSearch入门篇

相关产品

  • 检索分析服务 Elasticsearch版