ES基本操作

ES全名Elasticsearch,

官方网站:https://www.elastic.co/
官方文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/5.1/index.html

中文版权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

一 介绍

       ES是一个分布式的全文检索引擎,基于著名的全文索引开发包apache luceneESlucene进行了分布式化,并提供REST api提供开箱即用的索引、搜索服务。ES提供便捷的扩展机制,新的节点可以动态加入已有集群,提高集群的存储、计算能力。

1基本概念

ES集群(cluster):ES一般以集群的方式对外提供服务,通过集群提高服务的计算和存储能力。一个集群可以是1台或者N台物理服务器。所有的查询请求可以被负载到集群中所有的机器。

节点:一个节点就是一个Elasticsearch Java进程,每个节点维护一定数量的数据,执行这部分数据的查询请求。一般一台物理机会部署多个节点,每个对应一块物理盘。

主节点(master):一个ES集群一般由多个节点组成,集群在启动后,会从所有的节点中选一个为master节点。它维护集群全局的元信息。如,集群里有哪些节点,哪些索引,索引的分片等,集群的状态更新和发布。同时,master节点也具有存储和查询功能。

数据节点(data node):用来存储数据,响应查询请求,接受并处理master节点发送的集群状态信息。

索引(index):一个索引由多个物理分片组成,分布在集群的多个节点上。

分片(shard):一个物理分片是一个完整的Lucene索引,是搜索的最小单位。每个分片可以包含1到N个段(segment)。

副本:ES在分布存储的过程中,为了提高数据的安全性,并充分利用集群内服务器的计算资源,可以给分片设置多个副本,分散存储于多台服务器,每个副本的数据是完全一样的,都可以提供搜索,当某个分片出现问题时,可以通过副本进行恢复。

段(segment):一个段就是一批具有相同文件名,不同文件名厚的Lucene文件集合。随着数据的增加,小的段合并成大的段,以提高资源利用率。

文档:ES中的文档类似于关系数据库中的一条记录,文档包含多个字段(field),每个filed可以有自己的数据类型,也可以有自己的索引分析方式。

translog:新索引的数据在内存里,为了防止这些数据由于断点或者进程意外终止而丢失,每个分片有自己对应的一个translog,所有的索引和删除操作记录在translog里面。如果发生意外可以通过replay translog里的操作而恢复数据。

查询:集群中的每个节点都可以接受查询请求,接受到客户端查询请求的节点我们称之为协调点,该节点会解析查询的索引并根据索引分片在集群中的分布情况将查询分发到对应的节点,等待所有分片的返回,最终在协调点进行查询结果的汇总返回客户端。

对应关系
Elasticsearch关系数据库(如,MySQL)
indexdatabase
typetable
documentrecord
filedcolumn

2特点

基本特点:

  • 实时数据
  • 实时分析
  • 分布式
  • 高可用性
  • 多用户
  • 全文搜索(先建立索引,再对索引进行搜索的过程就叫全文检索)
  • 面向文档
  • rest风格API,每个操作的持久性
  • 开源 

 

二 基本操作

ES基本操作命令
序号操作命令说明
1创建索引curl -sXPUT "localhost:9200/test?pretty" -d'{"settings":{"index":{"number_of_shards":3,"number_of_replicas":2}}}'创建一个分片数3,副本为2的索引。(一般分片数默认是5,如果只有一台服务器则副本数为0)
2查询集群状态

curl -sXGET localhost:9200/_cat/health?pretty

// curl -sXGET localhost:9200/_cluster/health?pretty

建议第2种方式。集群的状态有:green、yellow和red。正常情况下是green。

颜色意义
green所有主要和复制的分片都可用
yellow所有主分片可用,但福分片不一定可用
red不是所有主分片可用
3集群节点

curl -sXGET localhost:9200/_cat/nodes?v

返回所有节点信息
4节点属性

curl -sXGET localhost:9200/_cat/nodeattrs?v

 
5所有索引分片信息

curl -sXGET localhost:9200/_cat/shards?v

 
6配置查询

curl -sXGET localhost:9200/_cluster/settings?pretty

 
7所有索引

curl -sXGET localhost:9200/_cat/indices?v

返回所有的索引信息
8单个索引

curl -sXGET localhost:9200/_cat/indices?v | grep '索引名'

 
9索引具体信息

curl -sXGET localhost:9200/索引?pretty

返回这个索引的信息,settings(分片、副本等)和mappings(字段、类型等)的相关信息
10索引的配置curl -sXGET localhost:9200/索引名/_settings?prettypretty,返回结果格式美观。
11单个索引的分片信息curl -sXGET localhost:9200/_cat/shards/索引名?vv,让输出内容表格显示表头。
12所有索引的doc数量

curl -sXGET localhost:9200/_cat/count?v

相当于查询日志总量。
13索引数据curl -sXGET localhost:9200/索引名/_search?pretty默认显示最近的10条。
14查看最近3条数据curl -sXGET "localhost:9200/索引名/_search?pretty" -d'{"query":{"match_all":{}},"size":3}'指定size大小。
15索引匹配数据查询

curl -sXGET "localhost:9200/索引名/_search?pretty" -d'{"query":{"match":{"字段":"字段值"}},
"size":3}'

//curl -sXGET "localhost:9200/索引名/_search?pretty" -d'{"query":{"term":{"字段":"字段值"}},
"size":3}'

match:模糊匹配。会提供一个分析器;

term:精确查询,不分析。

16

修改

关闭所有索引

curl -XPOST localhost:9200/_close

 
17开启所有索引

curl –XPOST localhost:9200/_open

 
18

关闭指定索引

curl –XPOST localhost:9200/索引名/_close

 
19

开启指定索引

curl –XPOST localhost:9200/索引名/_open

 
20删除删除单个索引

curl  -XDELETE localhost:9200/索引名

 
21

删除所有索引

curl -sXPUT "http://localhost:9200/_cluster/settings" -d

'{"persistent":{"action.destructive_requires_name":false}}‘

 

curl -XDELETE localhost:9200/_all

 
22清除缓存curl -XGET localhost:9200/_cache/clear?pretty 
     

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值