elasticsearch一些基本用法

elasticsearch 跟关系型数据库 MySQL 的对应角色关系

MySQL             ElasticSearch
database                 index
table                         type
row                          document
column                     field                                                                                                                                                           schema                  mapping

查看当前节点的所有 Index: 

      curl -X GET 'localhost:9200/_cat/indices?v'

新建 Index: 

                  curl -X PUT 'localhost:9200/index_name'

删除 Index: 

                  curl -X DELETE 'localhost:9200/index_name'

查询所有的 index, type:

                  curl  “localhost:9200/_search?pretty“

查询某个index下所有的type: 

                  curl ‘localhost:9200/index_name/_search‘

每个 Index 所包含的 Type: 

                  curl 'localhost:9200/_mapping?pretty=true'

 查询某个index 下, 某个 type下所有的记录:

                  curl “localhost:9200/index_name/type_name/_search?pretty“

cluster:  集群,一个es集群由多个节点(node)组成,每个集群由cluster name作为集群标识

node:节点,一个es实例是一个node,一个机器有多个实例,所以并不能说一台机器就是一个node,但多数情况下一个node运行在一个独立的环境或虚拟机上

index:数据库

shard:分片,每个index有多个shard,index的数据会被分配到各个shard上(分布式搜索);

            shard有助于横向拓展,N个分片会尽可能平均的分配在不同的node上(例如有2个节点,4个主分片(不考虑备份),每个节点会分到2个分片,后来增加了2个节点,那么4个节点都有一个分片,这是es感知后自动完成的relocation过程);

          分片是独立的,对于每个search request行为,每个分片都会执行这个request;每个分片都是一个Lucene Index,所以一个分片只能存放integer.Max_Max_value-128=2147483519个docs

replica:复制,可以理解为备份分片,相应的有primary shard(主分片);

             主分片和备份分片不会出现在同一个节点上(防止单点故障),默认情况下一个索引创建5个分片一个备份(即5+5);

             如果只有一个节点,那么5个备份都无法分配,此时cluster status会变成yellow

             replica的作用:1、容灭,primary分片丢失,replica就会顶上去成为新的primary分片,同时分局这个新的主分片创建新的replica;2、提高查询性能,replica分片和primary分片的数据是相同的,所以对于一个Querry既可以查主分片有可以查备分片,在核实范围内多个replica性能会更优(但要考虑资源占用也会提升[CPU、disk、heap]),还有,index request 只能发生在主分片上,replica不能执行。

             对于一个索引,出给重建索引,否则不能调整分片的数目,但可以随时调整replica数

 

es集群状态:

     green:所有主分片和备分片都准备就绪(分配成功),即使有一个实例挂了,数据都不会丢失,但会变成yellow状态

     yellow:所有主分片就绪,但有一个或多个主分片(假设是A)的备份分片没有就绪,此时集群处于警告状态,意味着集群的高可用和容灾能力下降,如果刚好A所在的节点挂了,并且只设置了一个备份(已处于未就绪状态),那么A的数据就会丢失(查询结果不完整),此时,集群进入red状态

      red:至少一个主分片没有就绪(直接原因是没有找到一个对应的备份分片成为新的主分片),此时查找的结果会出现数据丢失(不完整)

你可能感兴趣的:(数据库)