初识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.元组仍然是一种序列,所以几 ...
随机推荐
- mysql做了主从,删除binlog日志
在主服务器操作: 1.查看当前主从库是用哪个binlog日志在做组从 show master status show slave status 2.查看主库的binlog日志 show master ...
- loadrunner中pacing设置01
之前一直也用pacing值来调节TPS,一直觉得它和think time没啥区别.这次项目中,和同事就此展开了讨论,细细一研究发现pacing值门道还是很多的. 如下面三个图: 上图是pacing的三 ...
- Android 将若干张图片拼接在一起形成一个全新的图片
目的:使用Android技术将若干张图片拼接成为一张图片. 最开始的两张图如下所示: 拼接后的图片如下图所示: 这样就把两张图片拼接成为一张了. 拼接步骤: 1.使用Bitmap创建一个空的Bitma ...
- ETH—Lwip以太网通信
第39章 ETH—Lwip以太网通信 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/ ...
- 数字IC设计入门书单
首发于观芯志 写文章 数字IC设计入门书单 Forever snow 1 年前 作者:Forever snow链接:你所在领域的入门书单? - 知乎用户的回答来源:知乎著作权归作者所有,转 ...
- 在win10下使用docker快速搭建ruby开发环境
docker在windows下发力的时候必将取代各种虚拟机,并改变程序员的开发习惯,或许还会改变infra的工作. 概要: 在Windows下搭建开发环境一直是infra(我)头疼的事情.为了解决这个 ...
- AI Summit(2018.07.19)
AI Summit 时间:2018.07.19地点:北京丽都皇冠假日酒店
- win10+anaconda3+python3.6+opencv3.1.0
最近用windows系统比较多,就想在win10下搞一下深度学习这一方面的研究,那么就需要配置好环境巴拉巴拉的一堆东西.默默记个笔记,正所谓“好记性不如烂笔头”. 1.安装Anaconda 这个是一个 ...
- npm install —— 从一个简单例子,看本地安装与全局安装的区别
npm的包安装分为本地安装(local).全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如 npm install grunt # 本地安装 npm install -g ...
- Git版本库的创建(Ubuntu)
在Ubuntu上学习Git随笔. 一. git 仓库的安装 git 在终端用git命令查看Ubuntu是否安装git版本库,如果没有安装,最新版本(Ubuntu18.04)会提示用下面命令进行安装. ...