Elasticsearch 术语介绍和CRUD实际操作入门

一、Elastic Stack 核心Elasticsearch
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎。Elasticsearch 是面向文档的,这就意味着它可以像MongoDB一样存储整个对象或者文档。然而它不仅仅是存储,还会索引每个文档的内容,使值可以被索引。我们也可以对文档进行索引,搜索,排序,过滤。
在Elasticsearch中存储数据的行为就叫做索引(indexing)。文档属于一种类型(type),而这些类型存储在索引(index)中。
Elasticsearch常用术语
- Document 文档数据
- Index 索引
- Type 索引中的数据类型
- Field 字段,文档属性
- Query DSL 查询语法
对比MySQL、MongoDB、Elasticsearch中的相关概念。

二、本地启动Elasticsearch集群
bin\elasticsearch
启动信息如下所示。

bin\elasticsearch -Ehttp.port= -Epath.data=node2
bin\elasticsearch -Ehttp.port= -Epath.data=node3

启动完成之后,分别访问:
http://localhost:9200/
http://localhost:8200/
http://localhost:7200/
查看集群
http://localhost:9200/_cat/nodes

显示集群中有3个节点。
http://localhost:9200/_cat/nodes?v
显示标题信息,其中 * 表示为主节点。
http://localhost:9200/_cluster/stats
显示集群详细信息。

三、Elasticsearch中CRUD实际操作
启动Kibana,访问http://localhost:5601,点击Dev Tools 菜单项。

CRUD 基本操作:
- Create 创建 PUT /index/type/id(data)
- Read 读取 GET /index/type/id
- Update 更新 POST /index/type/id/_update(doc)
- Delete 删除 DELETE /index/type/id
(1)输入POST 脚本,点击执行按钮,查看输出结果。

(2)查询操作 GET
GET /accounts/person/1 获取查询结果

(3)更新操作 POST
POST /accounts/person/1/_update
{
"doc":{
"lastname":"li"
}
}
再次执行查询操作GET,发现结果已经更新成功。

(4)删除操作DELETE
DELETE /accounts/person/1

四、Elasticsearch 7.*的更新
在前面的操作过程中,会看看到 Deprecation 提示信息,意思是type已经移除了。
从Elasticsearch 6.0开始,官方便不建议一个索引中创建多个类型;在Elasticsearch 7.0中,更是移除了类型(Type)这个概念。
在 Elasticsearch 7.* 中,由于类型(Type)的移除,我们可以理解为,一个索引(index)就是一张 table。
创建一条新的文档,注意:_doc【Type名称,约定都用_doc】,此时就没有Deprecation 提示信息了。
POST /accounts/_doc/3
{
"name": "Tom",
"lastname": "Ma",
"job_desc": "码农"
}

其他操作类似,将之前的type:person 更新为 _doc即可。

五、Elasticsearch 查询
简单介绍2中查询方式,分别为 query string 和query DSL。
(1)Query String
GET /accounts/_search?q=Senior
(2)Query DSL
GET /accounts/_search
{
"query" :{
"match": {
"name": "jacky"
}
}
}

Elasticsearch 术语介绍和CRUD实际操作入门的更多相关文章
- 【转载】salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)
salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL) salesforce中对于数据库操作和JAVA等语言对于数据库操作是有一定区别的.salesfo ...
- 全文搜索引擎Elasticsearch详细介绍
我们生活中的数据总体分为两种:结构化数据 和 非结构化数据. 结构化数据:也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理.指具有固 ...
- 一篇文章带你搞定 ElasticSearch 术语
这篇文章主要介绍 ElasticSearch 的基本概念,学习文档.索引.集群.节点.分片等概念,同时会将 ElasticSearch 和关系型数据库做简单的类比,还会简单介绍 REST API 的使 ...
- 基于MVC4+EasyUI的Web开发框架形成之旅--基类控制器CRUD的操作
在上一篇随笔中,我对Web开发框架的总体界面进行了介绍,其中并提到了我的<Web开发框架>的控制器的设计关系,Web开发框架沿用了我的<Winform开发框架>的很多架构设计思 ...
- ShoneSharp语言(S#)的设计和使用介绍系列(4)— 入门概述
ShoneSharp语言(S#)的设计和使用介绍 系列(4)- 入门概述 作者:Shone 声明:原创文章欢迎转载,但请注明出处,https://www.cnblogs.com/ShoneSharp. ...
- C语言与数据库操作入门
https://blog.csdn.net/flyingqd/article/details/78763652 C语言与数据库操作入门(Win版) 2017年12月10日 17:30:17 阅读数:1 ...
- C语言与数据库操作入门(Win版)
C语言与数据库操作入门(Win版) 2017年12月10日 17:30:17 阅读数:1387 数据库,DataBase,学C语言的是不是想说,很想爱她却并不容易呢?不用着急,C语言也可以操作数据库的 ...
- Storm实时计算:流操作入门编程实践
转自:http://shiyanjun.cn/archives/977.html Storm实时计算:流操作入门编程实践 Storm是一个分布式是实时计算系统,它设计了一种对流和计算的抽象,概念比 ...
- Elasticsearch本地环境安装和常用操作
本篇文章首发于我的头条号Elasticsearch本地环境安装和常用操作,欢迎关注我的头条号和微信公众号"大数据技术和人工智能"(微信搜索bigdata_ai_tech)获取更多干 ...
随机推荐
- Mac删除自带的abc输入法
1. 安装软件:https://pan.baidu.com/s/15oIzTDojpignoR5MiZ-Q1A 安装并注册 2. 进入到目录,并打开: 1. /Users/toov5/Library/ ...
- Oracle的ole db连接字符串
Provider=msdaora;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.10.59.22)(PO ...
- babelrc笔记
Babel默认只是转换新的语法(简单转换语法糖),如箭头函数等,但不会转换新的API,如Iterator.Generator.Set.Maps.Proxy.Reflect.Symbol.Promise ...
- [LeetCode] 685. Redundant Connection II 冗余的连接之 II
In this problem, a rooted tree is a directed graph such that, there is exactly one node (the root) f ...
- kubernetes 监控方案之:heapster+influxdb+grafana(十八)
目录 一.Heapster 介绍 二.部署 三.使用 heapster 已经 deprecated 了:https://github.com/kubernetes/heapster,所以下面的演示主要 ...
- Windows10不能进入睡眠
问题 有时候暂时不使用计算机(Windows10笔记本),既想省电,又想回来之后快速启动,一般会选择让计算机进入睡眠状态.睡眠状态下,基本上只有内存通电,保存着之前的工作状态,可以快速恢复. 但是最近 ...
- windows 安装node.js
安装node.js 这里我们是直接下载的编译后的zip包 地址:https://nodejs.org/en/download/ 点击下载相应的zip版本 这里我把zip包最里面一层的东西,所有内容放在 ...
- Mongodb CPU占用率达90%的优化调整报告
1问题描述 1.1现场的数据库部署情况 服务器基本情况如下: CPU 20逻辑核,40线程 内存 64 G 硬盘 D盘 :1T SSD E盘:3T SATA F盘:3T SATA 在这台机器上同时部署 ...
- 小程序常用操作,if,for,跳转,弹出提示
if <block wx:if="{{result.child_items}}"> ... </block> <block wx:else> . ...
- Redis专栏
后端开发都应该掌握的Redis基础 Redis实用监控工具一览