初识elasticsearch_1(基本概念和基本操作)
初识
ElasticSearch是一个基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.本博客部分基于es的官方文档.es的官方文档网址如下:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
基本概念
Cluster
Cluster是一种集群,它包含了一个或多个结点(Node),包含了我们要搜索的整个数据,并且在结点间提供了联合索引和搜索的功能.每个cluster需要有自己唯一的名称,可以只有一个Cluster,也可以有多个> Cluster,当然他们的名字是不同的.
Node
一个结点是Cluster中的一个部分,Node也会有自己的一个唯一标识,这个标识是一个UUID.通常Node在加入的时候可以指定它的Cluster.默认情况下所有Node都会加入一个叫做”Cluster”的集群
index
Index是多个具有一定相同特征的document的集合,在新建index的时候,它的标识名称在更新,删除都会用到,在一个Cluster中可以定义任意多的索引
document
Document是存储信息的基本单元.document使用JSON去表达其信息.
使用Cluster
- 查看所有索引:
GET /_cat/indices?v
- 创建一个index:
PUT /customer?pretty
- 创建一个文档:
其id为1,采用pretty的格式进行存储,指定type(doc),并且放入到一个index(customer)里面:
PUT /customer/doc/1?pretty
{
"name": "John Doe"
}
可以通过get进行查询:
GET /customer/doc/1?pretty
返回值如下所示,可以很轻松的看出id,source则是我们放进去的域的内容:
{
"_index": "customer",
"_type": "doc",
"_id": "1",
"_version": 1,
"found": true,
"_source": {
"name": "John Doe"
}
}
- 删除文档:
delete /customer?pretty
可以看出我们当前的命令的结构,都是如下格式的:
[请求方式] /[index名]/[type名]/[文档id]
- 更新文档:
可以通过连续插入同样id的文档完成对于文档更新的要求:
PUT /customer/doc/1?pretty
{
"name": "John Doe"
}
PUT /customer/doc/1?pretty
{
"name": "John Doe",
"age" : 23
}
当没有指定id的时候,es会给我们指定个随机数id并且作为返回值给我.
当我们做上面的操作的时候,es实际上删除了旧的文档,并且新建了新的文档给我们,因此不是直接更新,而是先删除,再更新.
还可以采用表达式进行更新:
POST /customer/doc/1/_update?pretty
{
"script" : "ctx._source.age += 5"
}
- 删除文档
DELETE /customer/doc/2?pretty
- 批量操作
Es可以使用_bulk的API去进行批量操作.
例如下面的操作创建了两个id为1,2的文档:
POST /customer/doc/_bulk?pretty
{"index":{"_id":"1"}}
{"name": "John Doe" }
{"index":{"_id":"2"}}
{"name": "Jane Doe" }
下面的操作,更新了id为1的document的name,删除了id为2的document
POST /customer/doc/_bulk?pretty
{"update":{"_id":"1"}}
{"doc": { "name": "John Doe becomes Jane Doe" } }
{"delete":{"_id":"2"}}
初识elasticsearch_1(基本概念和基本操作)的更多相关文章
- InfluxDB概念和基本操作 二
InfluxDB概念和基本操作 InfluxDB基本概念 数据格式 在 InfluxDB 中,我们可以粗略的将要存入的一条数据看作一个虚拟的 key 和其对应的 value(field value ...
- Monogb基本概念及基本操作
MongoDB是面向文档的数据库. 索引:MongoDB支持通用辅助索引,能进行多种快速查询,也提供唯一的.复合的和地理空间索引能力. 存储JavaScript:开发人员不必使用存储过程了,可以直接在 ...
- Mysql概念及基本操作
1.Mysql 概念 1.1 定义 数据库本质是一个C/S的套接字软件 关系型数据库:MySQL mariadb db2 非关系型:存取数据是以key:Value mongodb redis 1.2 ...
- python文件(概念、基本操作、常用操作、文本文件的编码方式)
文件 目标 文件的概念 文件的基本操作 文件/文件夹的常用操作 文本文件的编码方式 01. 文件的概念 1.1 文件的概念和作用 计算机的 文件,就是存储在某种 长期储存设备 上的一段 数据 长期存储 ...
- InfluxDB概念和基本操作
InfluxDB基本概念 数据格式 在 InfluxDB 中,我们可以粗略的将要存入的一条数据看作一个虚拟的 key 和其对应的 value(field value).格式如下: cpu_usage, ...
- 从零开始学习GDI+ (二) 基本概念与基本操作
从零开始学习GDI+ (一)我的第一个GDI+程序 上文给新手学习GDI+讲述了vs环境等的准备工作,并且可以直接用GDI+绘图了.本文开始,讲述的可能偏理论,建议学习的过程中大胆尝试,多使用API. ...
- Docker 镜像、容器、仓库的概念及基本操作
Docker 包括三个基本概念: 镜像(Image)容器(Container)仓库(Repository) 这三部分组成了Docker的整个生命周期,如下图所示,容器是由镜像实例化而来的,这和我们学习 ...
- Oracle 用户概念与基本操作
目录 目录 Oracle的用户 通过系统用户来登陆SQLPlus system和sys的区别 查看登陆的用户 启用和锁定一个用户 启用用户 锁定用户 创建用户 修改用户 删除用户 角色权限 常用的用户 ...
- python元组的概念与基本操作
元组与列表类似,关于元组同样需要做如下三点: A.概念 1.元组通过英文状态下的圆括号构成“()”.其存放元素与列表一样,可以是不通的数值类型,也可以是不通的数据结构. 2.元组仍然是一种序列,所以几 ...
随机推荐
- anaconda查看删除增加镜像源
# 查看显示原来的镜像源(base) [jiangshan@localhost ~]$ conda config --showadd_anaconda_token: Trueadd_pip_as_py ...
- JAVA框架Struts2(二)
一:Struts2执行流程: 1)编写页面,点击超链接,请求提交到服务器端. 2)请求先经过Struts2核心过滤器(StrutsprepareAndexectuterfilter). 3)过滤器的功 ...
- Android使用AsyncTask设置请求超时的注意事项
备注:该篇文章为原创,转载请声明地址,谢谢! /** * AsyncTaskTools2集成了AsyncTask类 * 前三个参数为回到函数,最后一个为全局的Context */ final Asyn ...
- C#可空类型(转载)
在程序开发中,有时候需要值类型也为可空类型,比如,在数据库中,我们可以把一个日期Datetime设置为null. 在C# 2.0中就出现了可空类型,允许值类型也可以为空(null),可空类型的实现基于 ...
- 20155310《网络对抗》Exp2 后门原理与实践
20155310<网络对抗>Exp2 后门原理与实践 基础问题回答 1.例举你能想到的一个后门进入到你系统中的可能方式? 在网上下载软件的时候,后门很有可能被捆绑在下载的软件当中: 浏览网 ...
- 2017-2018-1 20155331 嵌入式C语言
2017-2018-1 20155331 嵌入式C语言 作业要求: 在作业本上完成附图作业,要认真看题目要求. 提交作业截图 作弊本学期成绩清零(有雷同的,不管是给别人传答案,还是找别人要答案都清零) ...
- ILSVRC2016目标检测任务回顾——视频目标检测(VID)
转自知乎<深度学习大讲堂> 雷锋网(公众号:雷锋网)按:本文作者王斌,中科院计算所前瞻研究实验室跨媒体计算组博士生,导师张勇东研究员.2016年在唐胜副研究员的带领下,作为计算所MCG-I ...
- [CF1067D]Computer Game[凸包/斜率优化+倍增+矩阵乘法]
题意 你有 \(n\) 个任务,初始收益为 \(a\) ,共 \(t\) 轮游戏,每轮可以选择完成一个任务(可以做多次),完成之后可以给任意任务升级,升级之后的任务收益为 \(b\) ,每个任务还有完 ...
- LOJ#6503.「雅礼集训 2018 Day4」Magic[容斥+NTT+启发式合并]
题意 \(n\) 张卡牌 \(m\) 种颜色,询问有多少种本质不同的序列满足相邻颜色相同的位置数量等于 \(k\). 分析 首先本质不同不好直接处理,可以将同种颜色的卡牌看作是不相同的,求出答案后除以 ...
- 使用plumbing命令来深入理解git add和git commit的工作原理
前言: plumbing命令 和 porcelain命令 git中的命令分为plumbing命令和porcelain命令: porcelain命令就是我们常用的git add,git commit等命 ...