Elasticsearch第二篇:基本概念和基础操作
上一篇文章,我们已经是在Windows10 上搭建了 Elasticsearch 环境已经安装了相关的插件,现在我们就可以像操作webapi一样简单的操作 ElasticSearch 了,有园友说可以用谷歌插件 Sense 来操作,不管了,这里就用最常见的软件 Postman 来进行测试和学习。在进行接口测试之前,先了解一下基本概念。
Elasticsearch 基本概念
1、Near RealTime 准实时
Elasticsearch 是一个准实时的搜索平台。准实时是指:ES写入数据、搜索数据的时候会有一些时间上的延迟,但一般是在1s以内,接近实时。
2、Cluster 集群
节点(服务器)的集合就形成集群,集群包含一个或者多个节点,这些节点分工合作,一起保存整个数据,并提供联合索引和搜索的功能。每个ES实例都默认有一个 clustername 属性(这个属性默认值是 “Elasticsearch” ),如果多个ES实例的 clustername 都一样,例如都是“MySearch”,则这多个实例都启动运行起来,就形成一个集群。反之,如果各个实例的 clustername 不同,那么这些实例各自独立,不构成集群,也没有分工合作的产生。
3、Node 节点
节点是组成集群的一个单独服务器,用于存储数据并提供集群的搜索和索引功能。节点同样有唯一一个名字,可以手动指定节点的名字,然后按照配置加入指定的集群。
4、Index 索引库
索引是具有相似特性的文档集合,ES中索引是存放数据的地方,和关系型数据库的索引有区别,类似关系型数据库“库”的概念。
5、Type 类型
每个Index下面,有一个或者多个Type(ES最新版规定Index下面只有一个Type),区分数据类型,相当于关系型数据库“表”的概念,但是高版本的ES,这个Type的概念可能已经是弃用。
6、Document 文档
ES中最小的数据单元就是文档,相当于关系型数据库中某一个表的某一条记录,会被ES压缩成json格式。
7、Field 字段
相当于关系型数据库“列”的概念。
8、Shard 分片
分片的概念,可以参考 https://www.jianshu.com/p/b261373088be ,主要是ES可以将大数据量的索引库(Index)的数据进行水平切割存放。
Elasticsearch 基础操作
Elasticsearch 相关操作的 URL 格式:http://localhost:9200/<index>/<type>/[<id>]
其中:index 表示索引库,type表示类型,id表示操作的文档对象,这三个参数如果不存在,则会添加;
注意:type在ES的目前版本,一个index只有一个type。
1、添加
首先是添加,这样我们就添加了一条新闻(可以用 postman 来执行以下请求):
PUT http://localhost:/db_news/new/
{
"title": "今日头条新闻1",
"author": "新华时报记者1",
"content": "今日券商股继续涨停1"
}
2、修改
修改就是覆盖,例如我们修改以上id=1的文档:
PUT http://localhost:/db_news/new/
{
"title": "今日头条新闻2",
"author": "新华时报记者2",
"content": "今日券商股继续涨停2"
}
3、删除
删除很简单,传入id即可:
DELETE http://localhost:/db_news/new/
4、查询
查询指定库db_news,指定表 new 的某条文档( id=1):
GET http://localhost:/db_news/new/
查询是一个比较复杂的用法,下一篇再总结一下。
Elasticsearch第二篇:基本概念和基础操作的更多相关文章
- 原创】Java并发编程系列2:线程概念与基础操作
[原创]Java并发编程系列2:线程概念与基础操作 伟大的理想只有经过忘我的斗争和牺牲才能胜利实现. 本篇为[Dali王的技术博客]Java并发编程系列第二篇,讲讲有关线程的那些事儿.主要内容是如下这 ...
- 第二篇.1、python基础之数据类型与变量
一.变量 1 什么是变量之声明变量 #变量名=变量值 age=18 gender1='male' gender2='female' 2 为什么要有变量 变量作用:“变”=>变化,“量”=> ...
- 从零开始使用git第二篇:git的日常操作
从零开始使用git 第二篇:git的日常操作 第一篇:从零开始使用git第一篇:下载安装配置 第二篇:从零开始使用git第二篇:git实践操作 第三篇:从零开始使用git第三篇:git撤销操作.分支操 ...
- SAP-ABAP系列 第二篇SAP ABAP开发基础
第二章SAP ABAP开发基础 1.ABAP数据类型及定义 ABAP程序中共包含8种基本数据类型定义, 类型名称 描述 属性 C Character Text (字符类型) 默认长度=1,默认值 = ...
- 第二篇.2、python基础之字符编码
一 了解字符编码的知识储备 一 计算机基础知识 二 文本编辑器存取文件的原理(nodepad++,pycharm,word) #1.打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的 ...
- Python开发【第二篇】:Python基础知识
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...
- Python之路【第二篇】:Python基础
参考链接:老师 BLOG : http://www.cnblogs.com/wupeiqi/articles/4906230.html 入门拾遗 一.作用域 只要变量在内存中就能被调用!但是(函数的栈 ...
- Python自动化 【第二篇】:Python基础-列表、元组、字典
本节内容 模块初识 .pyc简介 数据类型初识 数据运算 列表.元组操作 字符串操作 字典操作 集合操作 字符编码与转码 一.模块初识 Python的强大之处在于他有非常丰富和强大的标准库和第三方库, ...
- maven第二天——重要概念与其它操作
一.在eclipse中建立工程 在day01中我们搭建了eclipse的maven环境,接下来我们开始建立maven项目 1.在eclipse中建立JAVA工程 file->new->ma ...
随机推荐
- 字符编码-Unicode、Utf-8 笔记
Unicode 将世界上所有的符号都纳入其中.每一个符号都给予一个独一无二的编码,那么乱码问题就会消失.这就是 Unicode,就像它的名字都表示的,这是一种所有符号的编码 UTF-8 UTF-8 就 ...
- 用matplotlib画简单折线图示例
例1 import numpy as np import matplotlib.pyplot as plt from scipy import stats rx1 = np.array([54.52, ...
- Java中多线程的使用(超级超级详细)线程池 7
Java中多线程的使用(超级超级详细)线程池 7 什么是线程池? 线程池是一个容纳多个线程的容器,线程池中的线程可以重复使用,无需反复创建线程而消耗过多的资源 *使用多线程的好处: 1.降低消耗,减少 ...
- Mysql报Too many connections,不要乱用ulimit了,看看如何正确修改进程的最大文件数
背景 今天在学习mysql时,看到一个案例,大体来说,就是客户端报Too many connections.但是,客户端的连接池,限制为了200,两个客户端java进程,那也才400,然后mysql配 ...
- STL源码剖析:序列式容器
前言 容器,置物之所也.就是存放数据的地方. array(数组).list(串行).tree(树).stack(堆栈).queue(队列).hash table(杂凑表).set(集合).map(映像 ...
- 题解 洛谷 P4143 【采集矿石】
对于一个固定的左端点,右端点向右移动时,其子串权值和不断增大,字典序降序排名不断减小,因此对于一个左端点,最多存在一个右端点使其满足条件. 所以可以枚举左端点,然后二分右端点的位置,权值和通过前缀和来 ...
- SpringBoot 整合Mybatis + PageHelper 实现分页
前言: 现在公司大多数都实现了前后端分离,前端使用Vue.React.AngularJS 等框架,不用完全依赖后端.但是如果对于比较小型的项目,没必要前后端分离,而SpringBoot也基本抛弃了Js ...
- docker 入门教程(5)——总结与学习资料
总结 registry:docker镜像仓库,集中存储和管理镜像,类似maven仓库. image:docker镜像,定义容器运行的文件和参数,可以看作是面向对象编程的类. container:doc ...
- 谁来教我渗透测试——VMware工具安装和使用
今天我们继续渗透测试学习系列了,昨天我们看了基础概念,今天我们来学习一下渗透测试必备的功能VMware安装. 首先我们下载好VMware workstation Pro的安装包.可以在百度上直接百度下 ...
- java基础(11)--封装
一.java面向对象三大特别: 1.封装 2.继承 3.多态 二.封装的作用 1.属性私有化(private) 2.对外提供简单的入口 如公开的set()与get()方法,并且都不带static ...