ES的基本概念

1> 集群和节点

一个es集群是由一个或多和es节点组成的集合

每一个集群都有一个名字, 如之前的wali

每个节点都有自己的名字, 如之前的master, slave1, slave2

节点是可以存储数据, 参与索引数据等的独立服务

2> 索引(类似于数据库里面的database)

索引是含有相同属性的文档集合

索引在es中是通过一个名字来识别的, 必须是英文字母小写, 且不含中划线

3> 类型(相当于sql中的table)

一个索引可以定义一个或多个类型, 文档必须属于一个类型

4> 文档(相当于sql中的一行记录)

文档是可以被索引的基本数据单位

5> 分片

每个索引都有多个分片, 每个分片都是一个luncene索引

分片的好处: 分摊索引的搜索压力, 分片还支持水平的拓展和拆分以及分布式的操作, 可以提高搜索和其他处理的效率

6> 备份

拷贝一个分片就完成了分片的备份

备份的好处: 当主分片失败或者挂掉, 备份就可以代替分片进行操作, 进而提高了es的可用性, 备份的分片还可以进行搜索操作, 以分摊搜索的压力.

ES在创建索引时, 默认创建5个分片, 一份备份, 可以修改, 分片的数量只能在创建索引的时候指定, 索引创建后就不能修改分片的数量了, 而备份是可以动态修改的

2.2 ES的基本用法

ES以RESTFul风格来命名API的, 其API的基本格式如下

http://<ip>:<port>/<索引>/<类型>/<文档id>

ES的动作是以http方法来决定的: 常用的http方法: GET/PUT/POST/DELETE

Eg1, 创建索引, 结合head插件创建索引的实例

返回”概览”查看创建情况

创建索引分为: 结构化创建与非结构化创建

查看索引是否是结构化的方法

Mappings是结构化的一个关键词, 其后内容是空的, 说明这个索引是一个非结构化的索引

创建结构化索引的方法

点击head插件的”复合查询”

验证json后, 提交请求,

返回head插件”概览查看”

Head插件中编写json发送请求比较复杂, 可以使用postman或者是fiddler等工具进行请求的发送

请求数据的json格式

{

"settings": {

"number_of_shards": 3,

"number_of_replicas": 1

},

"mappings": {

"man": {

"properties": {

"name": {

"type": "text"

},

"country": {

"type": "keyword"

},

"age": {

"type": "integer"

},

"date": {

"type": "date",

"format": "yyyy-MM-dd HH:mm:ss||yyyy:MM:dd||epoch_millis"

}

}

},

"woman": {}

}

}

2.2.1> 数据插入

文档id, 唯一索引值, 指向文档数据

2.2.1.1 指定文档id插入

使用http中的put方法,

插入时输入的ip地址, 如http://192.168.253.129:9200/people/man/1

请求参数依次为:索引名称/类型名称/文档id

请求参数

{

"name": "瓦力",

"country": "China",

"age": 30,

"date": "1987-03-07 12:12:12"

}

Head插件中”数据浏览”

2.2.1.2 自动产生文档id插入

使用http中的post方法,

插入时输入的ip地址, 如http://192.168.253.129:9200/people/man

请求参数

{

"name": "超重瓦力",

"country": "China",

"age": 40,

"date": "1977-03-07 12:12:12"

}

响应结果

2.2.2> 修改文档数据

2.2.2.1 直接修改文档

http方法: post方法

请求地址:  http://192.168.253.129:9200/people/man/1/_update

关键词: _update, doc

请求参数

{

"doc": {

"name": "谁是瓦力"

}

}

“doc”为关键字, 要修改的文档放在doc中, 实例修改了type为people索引下man中id为1 的name属性

返回的结果

可以在head插件中”数据浏览”中验证修改结果

2.2.2.2 脚本修改文档

通过脚本修改的api格式与直接修改的是一致的

http方法: post方法

请求地址:  http://192.168.253.129:9200/people/man/1/_update

请求参数

{

"script": {

"lang": "painless",

"inline": "ctx._source.age += 30"

}

}

关键字”script”: 标志以脚本的方式修改文档

“lang”: 表示以何种脚本语言进行修改, “painless”表示以es内置的脚本语言进行修改. 此外es还支持多种脚本语言, 如Python, js等等

“inline”:指定脚本内容 “ctx”代表es上下文, _source 代表文档

可以在head插件中”数据浏览”检查修改数据

此外还有其他的参数设置方式, 例如将参数放到外面

{

"script": {

"lang": "painless",

"inline": "ctx._source.name = params.name; ctx._source.age = params.age",

"params": {

"age": 30,

"name": "谁是瓦力"

}

}

}

2.2.3> 删除

2.2.3.1 删除文档

http方法: delete

请求路径http://192.168.253.129:9200/people/man/1

2.2.3.1 删除索引

1. 可以通过head插件进行删除

2. 通过api删除

Http方法: delete

链接地址: http://192.168.253.129:9200/book

ES的基本用法的更多相关文章

  1. ES 的基本用法

    ES的基本用法 ES的基本概念 1> 集群和节点 一个es集群是由一个或多和es节点组成的集合 每一个集群都有一个名字, 如之前的wali 每个节点都有自己的名字, 如之前的master, sl ...

  2. OpenGL ES学习笔记(一)——基本用法、绘制流程与着色器编译

    首先声明下,本文为笔者学习<OpenGL ES应用开发实践指南(Android卷)>的笔记,涉及的代码均出自原书,如有需要,请到原书指定源码地址下载. 在Android.iOS等移动平台上 ...

  3. ES 基本用法

    转自:https://www.cnblogs.com/rodge-run/p/7760308.html ES的基本概念 1> 集群和节点 一个es集群是由一个或多和es节点组成的集合 每一个集群 ...

  4. OpenGL ES学习笔记(二)——平滑着色、自适应宽高及三维图像生成

    首先申明下,本文为笔者学习<OpenGL ES应用开发实践指南(Android卷)>的笔记,涉及的代码均出自原书,如有需要,请到原书指定源码地址下载. <Android学习笔记--O ...

  5. Elasticsearch大规模时序索引如何治理和规划

    什么是时序索引? 其主要特点体现在两个方面, 一存,以时间为轴,数据只有增加,没有变更,并且必须包含timestamp(日期时间,名称随意)字段,其作用和意义要大于数据的id字段,常见的数据比如我们通 ...

  6. elastaicsearch基础----->elastaicsearch的使用(一)

    这里面我们总结一下es的一些基础使用. es的基础用法 一.es索引的创建 在postman中,请求url地址:192.168.1.112:9200/user.请求方式:PUT.请求内容如下: { & ...

  7. Android+PHP开发最佳实践

    本书以一个完整的微博应用项目实例为主线,由浅入深地讲解了Android客户端开发和PHP服务端开发的思路和技巧.从前期的产品设计.架构设计,到客户端和服务器的编码实现,再到性能测试和系统优化,以及最后 ...

  8. ElasticSearch 学习记录之ES短语匹配基本用法

    短语匹配 短语匹配故名思意就是对分词后的短语就是匹配,而不是仅仅对单独的单词进行匹配 下面就是根据下面的脚本例子来看整个短语匹配的有哪些作用和优点 GET /my_index/my_type/_sea ...

  9. ES模块的基本用法常见使用问题

    本文作者:高峰,360奇舞团前端工程师,W3C WoT工作组成员. ES6中引入了模块(Modules)的概念,相信大家都已经挺熟悉的了,在日常的工作中应该也都有使用. 本文会简单介绍一下ES模块的优 ...

随机推荐

  1. Xcode 下cocos-2dx 环境搭建

    一.Cocos2d-x简介 Cocos2d-x是一个开源的移动2D游戏框架,MIT许可证下发布的,这是一个C++ Cocos2d-iPhone项目的版本. Cocos2d-X发展的重点是围绕Cocos ...

  2. Stochastic Gradient Descent 随机梯度下降法-R实现

    随机梯度下降法  [转载时请注明来源]:http://www.cnblogs.com/runner-ljt/ Ljt 作为一个初学者,水平有限,欢迎交流指正. 批量梯度下降法在权值更新前对所有样本汇总 ...

  3. Notepad++ 使用探索

    一.更换主题,视觉享受 1,http://wiki.macromates.com/Themes/UserSubmittedThemes,从网站上下载自己喜欢的主题,解压 2,复制Black Pearl ...

  4. 【一天一道LeetCode】#38. Count and Say

    一天一道LeetCode系列 (一)题目 The count-and-say sequence is the sequence of integers beginning as follows: 1, ...

  5. Cocos2D绘制纹理的一般方法

    如果你想在通常情况下绘制纹理,最简单的方法是在CCSprite的子类中实现.否则你将不得不自己创建一个CCRenderState对象传递给blend模式,着色器以及(可选的)纹理给CCRenderer ...

  6. 【面试笔试算法】Problem 9: 腾讯2016年研发实习笔试题:最长回文子串

    (一)题目 问题:求给定字符串s的回文(palindrome)子串中,长度最大的回文子串的长度. 回文(palindrome)是指从左往右读和从右往左读字符串,看到的字符串都是一样的.比如" ...

  7. Unity Editor 编写unity插件类

    在unity写了一个编辑类,基于iTweenpath插件,为了更方便的操作iTweenpath,顺便练习UnityEditor的操作,写了一个CreateiTweenPath,放在Editor文件夹中 ...

  8. How tomcat works 读书笔记十四 服务器组件和服务组件

    之前的项目还是有些问题的,例如 1 只能有一个连接器,只能处理http请求,无法添加另外一个连接器用来处理https. 2 对容器的关闭只能是粗暴的关闭Bootstrap. 服务器组件 org.apa ...

  9. 恶补web之七:html DOM知识

    html DOM定义了访问和操作html文档的标准;dom是w3c的标准,dom定义了访问html和xml文档的标准: w3c文档对象模型(dom)是中立平台和语言的接口,它允许程序和脚本动态访问和更 ...

  10. 熊猫猪新系统测试之一:Windows 10 技术预览版

    话说本猫不用windows很多年了呀!不过看到微软最新的Windows10还是手痒了,想安装体验一把.于是第一时间下载,并做成usb引导安装镜像,在08年的老台式机上安装尝鲜鸟.下载ISO和安装方法这 ...