ElasticSearch学习(1) 基础操作

目前使用的ES版本是7,借用下其他的文档。说明下ES的存储。

ES首先是index 对应的是数据库,7以前有type的概念,7没有type的概念,也就是说现在ES7

一个库(index)只有一个表(type)。

一个表(type)可以有多行(doc)

一行(doc)有多列(mapping)

好了开始基础操作!

我们的操作无非是增删改查, 增对的就是库表(index),字段名和属性(mapping),每一行的值(doc

index操作

#增加索引 i_dw_cc_test
put i_dw_cc_test

#查看索引
get i_dw_cc_test

#删除索引 i_dw_cc_test
delete i_dw_cc_test

mapping操作

#查看映射 如果我们先存数据,es的时候会默认字段都是keyword 后面不能修改
get i_dw_cc_test/_mapping

#创建映射  报错了mapper [name] cannot be changed from type [keyword] to [text]
put  i_dw_cc_test/_mapping
{
 "properties": {
 "id":{"type": "keyword","index": true},
 "name":{"type": "text", "index": true},
 "sex":{"type": "keyword","index": true}
 }
}

 删除映射。

直接删除index就好

修改映射

_doc操作

#增加数据 以前可以指定type名 比如person 现在不行了
#post i_dw_cc_test/person
#{
#  "id":"1",
#  "name":"cc"
#}
#现在只能指定_doc 这里会随机生成一个id 这个id是给es管理的 你也可以指定
post i_dw_cc_test/_doc
{
  "id":"1",
  "name":"cc"
}

# 指定es的这条数据的id=1
post i_dw_cc_test/_doc/1
{
  "id":"1",
  "name":"cc1"
}
post i_dw_cc_test/_doc/2
{
  "id":"2",
  "name":"zbf2"
}
post i_dw_cc_test/_doc/3
{
  "id":"3",
  "name":"cclovezbf3"
}

#更新数据 全量覆盖
post i_dw_cc_test/_doc/1
{
  "id":"1",
  "name":"cc111111111",
  "sex":"man"
}
#修改数据部分覆盖 注意这里的请求体有个doc 我不知道这个为啥不省略
post i_dw_cc_test/_update/1
{
  "doc":{
      "name":"cc2222222222"
    }
}

#删除数据 es id=1的数据
delete i_dw_cc_test/_doc/1

#条件删除文档 注意这里的请求是post
post i_dw_cc_test/_delete_by_query
{
 "query":{
    "match":{
      "name":"cc1"
    }
  }
}

查询是重头戏

#查看数据 根据id 查询  select * from t where id =2 类似根据主键查询
get i_dw_cc_test/_doc/2

#查询所有数据 类似 select * from t
get i_dw_cc_test/_search
{
 "query": {
 "match_all": {}
 }
}

#查询数据 类似 select * from t where name like '%zbf2%'  这里会分词 不同于mysql模糊查询
#但是我这里是keyword不分词因为我先插入数据后mapping。。。暂时不实验了
get i_dw_cc_test/_search
{
 "query": {
    "match": {
      "name":"zbf2" 
    }
 }
}

#查询数据 类似 select * from t where name=1 or id =1
get i_dw_cc_test/_search
{
 "query": {
 "multi_match": {
 "query": "1",
 "fields": ["id","name"]
 }
 }
}

#精确查询  select * from t where name=zbf2
get i_dw_cc_test/_search
{
 "query": {
 "term": {
 "name": {
 "value": "zbf2"
 }
 }
 }
}
#精确查询 这里是terms  select * from t where name in (zbf2,cc)
get i_dw_cc_test/_search
{
 "query": {
 "terms": {
 "name": ["zbf2","cc"]
 }
 }
}

#精确查询加 指定字段  select id from  t where name in (zbf2,cc)
get i_dw_cc_test/_search
{
 "_source": ["id"], 
 "query": {
 "terms": {
 "name": ["cc"]
 }
 }
}

其余的一些查询

获取index的总数据量

GET /index_name/_count 

获取切片的大小

GET /_cat/shards?v
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/26725.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web自动化 —— Selenium元素定位与防踩坑

1. 基本元素定位一 from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By # selenium Service("../../chromedriver.exe") # driver webdriver.Chrome(serviceService) # driver.…

react+unittest+flask 接口自动化测试平台

目录 1 前言 2 框架 2-1 框架简介 2-2 框架介绍 2-3 框架结构 3 平台 3-1 平台组件图 1 新建用例 2 生成测试任务 3 执行并查看测试报告 3-2 用例管理 3-2-1 用例设计 3-3 任务管理 3-3-1 创建任务 3-3-2 执行任务 3-3-3 测试报告 3-3-4 邮件通知 1 前言 在现…

神经网络模型在深度学习中的作用

神经网络模型是一种模拟人脑神经元之间连接和相互作用的数学模型。它由多个神经元(节点)以层次结构相互连接而成,每个神经元通过学习权重和偏置,根据输入数据产生相应的输出。 在深度学习中,神经网络模型被广泛应用于…

【LeetCode 75】第三题(1431)拥有最多糖果的孩子

题目: 示例: 分析: 题目是简单题,也确实简单,不过示例给出的解释有些复杂,甚至有些误导.我们只需要遍历得出分配糖果之前的糖果最大值,然后再依次遍历每个孩子拥有的糖果数,若某孩子原有的糖果数加上待分配的所有糖果数大于等于分配前的糖果最大值,则给该孩子对应下标的结果置…

在After Effects 加速渲染的 21个技巧,记得收藏!

如何减少After Effects 渲染时间? 1.升级内存 减少渲染时间的一种有效方法是升级 RAM(随机存取存储器)。RAM 在渲染过程中起着至关重要的作用,因为它存储并快速访问渲染任务所需的数据。增加系统中的 RAM 量可提供更多的数据存储…

MinUv2靶场详解

MinUv2靶场详解 这个靶场我学到了.bash_history文件,每个用户都有一个名为 .bash_history 的文件,它位于用户的主目录中,默认有500行最近执行的命令。 这个靶场我用vmware是不能打开的,用virtualBox就可以,并且打开时…

Java设计模式之行为型-命令模式(UML类图+案例分析)

目录 一、基础概念 二、UML类图 三、角色设计 四、案例分析 1、基本实现 2、点餐案例 五、总结 一、基础概念 1、将一个请求封装为一个对象,使您可以用不同的请求对客户进行参数化。 2、对请求排队或记录请求日志,以及支持可撤销的操作。 3、…

用Python采用Modbus-Tcp的方式读取PLC模块数据

使用计算器得到需要的寄存器地址 这里PLC地址是83,对应的程序16进制读取地址是53 实际上由于PLC地址从1开始,所以这里实际地址应该是52,因为计算机从0开始 使用网络调试助手生成报文 使用Python中的内置函数int()。以下是将人员卡号’b’3b44’转换为十…

webpack基础知识

webpack基础知识 1、定义2、环境安装3、初始化项目4、简单使用 1、定义 webpack的本质是一个第三方模块包,用于分析,并打包代码 支持所有类型的文件打包支持less/sass> css支持ES6/7/8>ES5压缩代码,提高加载速度 2、环境安装 yarn安…

出差在外,远程访问企业局域网象过河ERP系统【内网穿透】

文章目录 概述1.查看象过河服务端端口2.内网穿透3. 异地公网连接4. 固定公网地址4.1 保留一个固定TCP地址4.2 配置固定TCP地址 5. 使用固定地址连接 概述 ERP系统对于企业来说重要性不言而喻,不管是财务、生产、销售还是采购,都需要用到ERP系统来协助。…

cocos2d-js中jsc逆向为js

1.mac系统 2.安装php7以上的版本 ubuntu $ sudo apt install php7.0 mac $ brew install php7.0 windows just google an binary one 查看php安装的版本这里mac电脑为例子: 输入:php -v 只要7以上的版本即可 3.cd到自己的项目位置 cd path/to/project 安装composer,…

【网站建设】HTTP/HTTPS 是什么?有什么区别?

🚀欢迎来到本文🚀 🍉个人简介:陈童学哦,目前学习C/C、算法、Java等方向,一个正在慢慢前行的普通人。 🏀系列专栏:陈童学的日记 💡其他专栏:CSTL,感…