初识

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(基本概念和基本操作)的更多相关文章

  1. InfluxDB概念和基本操作 二

    InfluxDB概念和基本操作   InfluxDB基本概念 数据格式 在 InfluxDB 中,我们可以粗略的将要存入的一条数据看作一个虚拟的 key 和其对应的 value(field value ...

  2. Monogb基本概念及基本操作

    MongoDB是面向文档的数据库. 索引:MongoDB支持通用辅助索引,能进行多种快速查询,也提供唯一的.复合的和地理空间索引能力. 存储JavaScript:开发人员不必使用存储过程了,可以直接在 ...

  3. Mysql概念及基本操作

    1.Mysql 概念 1.1 定义 数据库本质是一个C/S的套接字软件 关系型数据库:MySQL mariadb db2 非关系型:存取数据是以key:Value mongodb redis 1.2 ...

  4. python文件(概念、基本操作、常用操作、文本文件的编码方式)

    文件 目标 文件的概念 文件的基本操作 文件/文件夹的常用操作 文本文件的编码方式 01. 文件的概念 1.1 文件的概念和作用 计算机的 文件,就是存储在某种 长期储存设备 上的一段 数据 长期存储 ...

  5. InfluxDB概念和基本操作

    InfluxDB基本概念 数据格式 在 InfluxDB 中,我们可以粗略的将要存入的一条数据看作一个虚拟的 key 和其对应的 value(field value).格式如下: cpu_usage, ...

  6. 从零开始学习GDI+ (二) 基本概念与基本操作

    从零开始学习GDI+ (一)我的第一个GDI+程序 上文给新手学习GDI+讲述了vs环境等的准备工作,并且可以直接用GDI+绘图了.本文开始,讲述的可能偏理论,建议学习的过程中大胆尝试,多使用API. ...

  7. Docker 镜像、容器、仓库的概念及基本操作

    Docker 包括三个基本概念: 镜像(Image)容器(Container)仓库(Repository) 这三部分组成了Docker的整个生命周期,如下图所示,容器是由镜像实例化而来的,这和我们学习 ...

  8. Oracle 用户概念与基本操作

    目录 目录 Oracle的用户 通过系统用户来登陆SQLPlus system和sys的区别 查看登陆的用户 启用和锁定一个用户 启用用户 锁定用户 创建用户 修改用户 删除用户 角色权限 常用的用户 ...

  9. python元组的概念与基本操作

    元组与列表类似,关于元组同样需要做如下三点: A.概念 1.元组通过英文状态下的圆括号构成“()”.其存放元素与列表一样,可以是不通的数值类型,也可以是不通的数据结构. 2.元组仍然是一种序列,所以几 ...

随机推荐

  1. JSON无限折叠菜单编写

    最近看了一篇关于JSON无限折叠菜单的文章 感觉写的不错,也研究了下代码,所以用自己编码方式也做了个demo 其实这样的菜单项在我们网站上或者项目导航菜单项很常见的一种效果,特别是在一些电子商务网上上 ...

  2. (转)LVS+Keepalived使用总结 vip丢失

    /sbin/ifconfig lo: $vip broadcast $vip netmask 255.255.255.255 up /sbin/ifconfig lo: 172.16.254.63 b ...

  3. PRML2-概率分布

    本博文来自<PRML第二章> 在第一章中说了对于模式识别问题来说,核心角色就是概率论.本章的目的一方面是为了介绍概率分布,另一方面也是为了对后面遇到的那些复杂问题先打下基础.本章关于分布上 ...

  4. shell编程的笔记

    关于历史命令 Shell相关 !! 是上一次执行的命令 !字符串  指执行最近一次以这个字符串开头的命令 !$ 取出上一条命令最后一个单词或命令 *匹配0个或多个字符         ?匹配一个字符 ...

  5. kettle学习笔记(十)——数据检验、统计、分区与JS脚本

    一.概述 数据剖析和数据检验: 用于数据的检查.清洗 . 统计步骤: 提供数据采样和统计的功能 分区: 根据数据里某个字段的值,拆分成多个数据块.输出到不同的库表和文件中. 脚本: Javascrip ...

  6. 20155213免考项目——bof进阶及简易的HIDAttack

    20155213免考项目--bof进阶及简易的HIDAttack 目录 序 任务一:构造Shellcode(64位) 任务二:64位Shellcode的注入 任务三:32位及64位bof攻击(开启堆栈 ...

  7. 实验八 Web基础

    实验八 Web基础 1.安装apache sudo apt-get install apache2 2.启动apache service apache2 start 3.使用 netstat -tup ...

  8. 类加载, 静态变量初始化, String不可变, 泛型使用, 内部类

    1.java变量类型 java变量类型分:基本数据类型变量和Object数据类型变量,变量也是占用者内存的 例如: int i = 3; i这个变量保存的就是整形3, 占32位 Object a = ...

  9. ActiveMQ 的安装与使用(springboot版本)

    一.安装 上官网下载tar包 http://activemq.apache.org/ tar -zxvf 后进入bin/linux-86-64 ./activimq start 启动 二.使用 pom ...

  10. CodeForces-1155D Beautiful Array

    Description You are given an array \(a\) consisting of \(n\) integers. Beauty of array is the maximu ...