Elasticsearch7.X 入门学习第二课笔记----基本api操作和CRUD
原文:Elasticsearch7.X 入门学习第二课笔记----基本api操作和CRUD
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
下面的操作 都是是kibana 中的 dev Tools工具操作的

一、索引
一个索引就是一个拥有几分相似特征的文档的集合。比如说,你可以有一个客户数据的索引,另一个产品目录的索引,还有一个订单数据的索引。一个索引由一个名字来标识(必须全部是小写字母的),并且当我们要对对应于这个索引中的文档进行索引、搜索、更新和删除的时候,都要使用到这个名字。
-
#查看所有索引相关信息
-
GET /_cat/indices?v
-
#创建索引
-
PUT customer
-
#查看所有索引相关信息
-
GET customer
-
#删除索引
-
DELETE customer
-
#查看索引的文档总数
-
GET kibana_sample_data_ecommerce/_count
-
-
#查看前10条文档,了解文档格式
-
POST kibana_sample_data_ecommerce/_search
-
{
-
}
二、文档CRUD
一个文档是一个可被索引的基础信息单元。比如,你可以拥有某一个客户的文档,某一个产品的一个文档,当然,也可以拥有某个订单的一个文档。文档以 JSON(Javascript Object Notation)格式来表示。

1 create 创建文档
_create 指定类型为create并不是type名称 默认是_doc 指定 ID 如果已经存在,就报错
-
#create document. _create 指定类型为create并不是type名称 默认是_doc 指定 ID 如果已经存在,就报错
-
PUT users/_create/1
-
{
-
"user" : "Jack2",
-
"post_date" : "2019-05-15T14:12:12",
-
"message" : "trying out Elasticsearch"
-
}
-
如果是id是1文档存在 在创建就会报错

2 index 创建文档
index和 create不一样地方:index 如果文档不错,就索引新的文档。如果文档存在就覆盖原有的文档内容。版本信息+1

3 GET查询索引
get 根据文档id查询 文档内容

4 Update 修改文档
update 修改文档 不会删除原文档 而是在 文档的基础上更新文档中的字段内容
# _update 才会根据文档中字段信息 在原文档上增加字段 必须带有doc
POST users/_update/1/
{
"doc":{
"post_date" : "2019-05-18T14:12:12",
"message" : "trying out ElasticsearchOut",
"phone" : "1806185",
"pubtest":[1,2,3],
"pubtest2":"[1,2,3]"
}
}

5 DELETE 删除文档
### Delete by Id
# 删除文档
DELETE users/_doc/1
6 查看索引的 maping 信息
maping 相当于表的 schema
GET users/_mapping

三 文档批量操作
bulk api 批量操作
1、bulk相当于数据库里的bash操作。
2、引入批量操作bulk,提高工作效率,你想啊,一批一批添加与一条一条添加,谁快?
3、bulk API可以帮助我们同时执行多个请求
4、bulk的格式:
action:index/create/update/delete
metadata:_index,_type,_id
request body:_source (删除操作不需要加request body)
{ action: { metadata }}
{ request body }
单条操作失败不会影响其他操作
5、bulk里为什么不支持get呢?
答:批量操作,里面放get操作,没啥用!所以,官方也不支持。
6、create 和index的区别
如果数据存在,使用create操作失败,会提示文档已经存在,使用index则可以成功执行。
7、bulk一次最大处理多少数据量?
bulk会把将要处理的数据载入内存中,所以数据量是有限制的,最佳的数据量不是一个确定的数值,它取决于你的硬件,你的文档大小以及复杂性,你的索引以及搜索的负载。
一般建议是1000-5000个文档,如果你的文档很大,可以适当减少队列,大小建议是5-15MB,默认不能超过100M,可以在es的配置文件(即$ES_HOME下的config下的elasticsearch.yml)中。
-
### Bulk 操作 批量操作,其中一步错误,不影响其他操作
-
-
PUT _bulk
-
{"index":{"_index":"test","_id":"1"}}
-
{"name":"dukun","post_date" : "2019-05-18T14:12:12","age":18,"phone" : "1806185","sex":"男"}
-
{"index":{"_index":"test","_id":"2"}}
-
{"name":"dukun02","post_date" : "2019-05-18T14:12:12","age":25,"phone" : "19888","sex":"男"}
-
{"create":{"_index":"test","_id":"3"}}
-
{"name":"dukun03","post_date" : "2019-05-19T14:12:12"}
-
{"update":{"_index":"test","_id":"3"}}
-
{"doc" :{"name":"dukun04","phone" : "1806185","age":28,"sex":"男"}}
-
{"delete":{"_index":"test","_id":"4"}}
mget 批量读取
批量操作可以减少网络连接所带来的开销,提供性能。
-
##批量查询mget
-
GET /_mget
-
{
-
"docs":[
-
{
-
"_index" : "test",
-
"_id" : "1"
-
},
-
{
-
"_index" : "test",
-
"_id" : "3"
-
}
-
]
-
}
-
##批量查询mget url中指定索引 可以简化如下
-
GET test/_mget
-
{
-
"ids":[1,2,3]
-
}
-
#批量查询mget 中_source过滤默认_source字段会返回所有的内容,
-
你也可以通过_source进行过滤。
-
比如使用_source,_source_include 包含字段,_source_exclude 查询排除字段. "_source" : false 不显示字段
-
GET test/_mget
-
{
-
"docs":[
-
{ "_id":"1",
-
"_source" : false
-
},
-
{ "_id":"1",
-
"_source" : true
-
},
-
{ "_id":"2",
-
"_source" : ["name","age"]
-
},
-
{
-
"_id":"3",
-
"_source":{
-
"include":["name","age","sex"]
-
}
-
},
-
{
-
"_id":"3",
-
"_source":{
-
"exclude":["name","age","sex"]
-
}
-
}
-
-
]
-
}
批量查询 _msearch

使用match_all进行查询,并且只返回第一个文档。如果没有指定size的值,则默认返回前10个文档
也可以指定返回从哪个文档开始,返回多少文档.

took —— Elasticsearch执行这个搜索的耗时,以毫秒为单位
timed_out —— 指明这个搜索是否超时
_shards —— 指出多少个分片被搜索了,同时也指出了成功/失败的被搜索的shards的数量
hits —— 搜索结果
hits.total —— 能够匹配我们查询标准的文档的总数目
hits.hits —— 真正的搜索结果数据(默认只显示前10个文档)
Elasticsearch7.X 入门学习第二课笔记----基本api操作和CRUD的更多相关文章
- Elasticsearch7.X 入门学习第九课笔记-----聚合分析Aggregation
原文:Elasticsearch7.X 入门学习第九课笔记-----聚合分析Aggregation 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. ...
- Elasticsearch7.X 入门学习第一课笔记----基本概念
原文:Elasticsearch7.X 入门学习第一课笔记----基本概念 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https: ...
- Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍
原文:Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本 ...
- Elasticsearch7.X 入门学习第八课笔记-----索引模板和动态模板
原文:Elasticsearch7.X 入门学习第八课笔记-----索引模板和动态模板 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接: ...
- Elasticsearch7.X 入门学习第七课笔记-----Mapping多字段与自定义Analyzer
原文:Elasticsearch7.X 入门学习第七课笔记-----Mapping多字段与自定义Analyzer 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处 ...
- Elasticsearch7.X 入门学习第四课笔记---- Search API之(Request Body Search 和DSL简介)
原文:Elasticsearch7.X 入门学习第四课笔记---- Search API之(Request Body Search 和DSL简介) 版权声明:本文为博主原创文章,遵循CC 4.0 BY ...
- Elasticsearch7.X 入门学习第三课笔记----search api学习(URI Search)
原文:Elasticsearch7.X 入门学习第三课笔记----search api学习(URI Search) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出 ...
- CI(CodeIgniter)框架入门教程——第二课 初始MVC
本文转载自:http://www.softeng.cn/?p=53 今天的主要内容是,使用CodeIgniter框架完整的MVC内容来做一个简单的计算器,通过这个计算器,让大家能够体会到我在第一节课中 ...
- python学习第二次笔记
python学习第二次记录 1.格式化输出 name = input('请输入姓名') age = input('请输入年龄') height = input('请输入身高') msg = " ...
随机推荐
- Mybatis入门教程之新增、更新、删除功能_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 上一节说了Mybatis的框架搭建和简单查询,这次我们来说一说用Mybatis进行基本的增删改操作: 一. 插入一条数据 ...
- 【SaltStack官方版】—— states教程, part 3 - 定义,包括,延伸
STATES TUTORIAL, PART 3 - TEMPLATING, INCLUDES, EXTENDS 本教程建立在第1部分和第2部分涵盖的主题上.建议您从此开始.这章教程我们将讨论更多 s ...
- python+selenium实现经京东登录+购物+支付
import json from time import sleep from selenium import webdriver import chardet from selenium.webdr ...
- Internet History, Technology, and Security(week7)——Technology: Application Protocols
Layer 4: Applications Application Layer TCP提供了“a reliable pipe”(一个坚固的水管)连接用户和服务器,确保了数据能准确不出意外地传输,所以A ...
- Java如何进行Base64的编码(Encode)与解码(Decode)
关于base64编码Encode和Decode编码的几种方式 Base64是一种能将任意Binary资料用64种字元组合成字串的方法,而这个Binary资料和字串资料彼此之间是可以互相转换的,十分方便 ...
- [BZOJ3236][AHOI2013]作业:树套树/莫队+分块
分析 第一问随便搞,直接说第二问. 令原数列为\(seq\),\(pre_i\)为\(seq_i\)这个值上一个出现的位置,于是可以简化询问条件为: \(l \leq i \leq r\) \(a \ ...
- Nginx 在 Linux 下安装与搭建集群
搭建集群图例 集群搭建图如下,为了简单一点,使用一个Nginx服务器+两个Tomcat服务器,省略数据库部分: 环境说明 Linux 为 CentOS 7.2 发行版 + Java jdk 1.8 + ...
- Java 中如何使用clone()方法克隆对象?
java为什么要 对象克隆: 在程序开发时,有时可能会遇到以下情况:已经存在一个对象A,现在需要一个与A对象完全相同的B 对象,并对B 对象的属性值进行修改,但是A 对象原有的属性值不能改变.这时,如 ...
- p2619 [国家集训队2]Tree I [wqs二分学习]
分析 https://www.cnblogs.com/CreeperLKF/p/9045491.html 反正这个博客看起来很nb就对了 但是不知道他在说啥 实际上wqs二分就是原来的值dp[x]表示 ...
- c# access oledb helper class
连接Access数据库 using System; using System.Collections.Generic; using System.Linq; using System.Text; us ...