ElasticSearch基础

1,基础概念

1)由Java开发,基于Restful Web接口,分布式的多用户,可扩展,高可用的全文搜索和分析引擎。store, search, and analyze big volumes of data
eg:收集日志,分析日志;收集、分析交易数据;存储数据库大表到es,用于检索和聚合。
2)基本概念。
---Near Realtime NRT近实时,从索引文档到该文档可被查找,通常在1s内。
---Cluster 集群,共享同一个cluster name的node(server)集合,集群保存了所有的数据,并在各节点之上提供索引和搜索功能。一个节点只能属于一个集群
查看集群的健康状态curl 172.17.6.11:9200/_cluster/health?pretty
查看具体索引的健康状态curl 172.17.6.11:9200/_cluster/health/dby_course_info?pretty
---Node 节点,一个启动时分配uuid的server。存储数据,参与集群的索引和查找。每个节点都能使用http和客户端通信,使用tcp和内部节点通信
---Index 索引,有相同特点的documents的集合。名称必须小写,通过name标识,来操作(索引,查找,更新,删除)index内的document。(相当于db)
---Type 类型,一个Index可以拥有多个type,可以定义为拥有共同字段(field)的文档集合。(相当于table)
---Document 文档,使用JSON描述的,可以被索引的基本信息单元。(相当于记录)
---Field域,
3)Shard分片和Replica副本。
---目的:水平拆分和扩展容量;支持在多个分片之间并发和并行操作,提高吞吐量。
创建索引时可以指定number_of_shards主分片的数量,默认为5个(一个分片的容量可达到20亿条文档)。
---Replica 副本,是一个index所有shards的拷贝,创建索引时可以指定number_of_replicas副本的数量,默认为1。(5个primary shard, 5个replica shard)。
---replicas机制是索引级别的,可以动态修改replicas副本的数量,但是不能修改分片的个数。
---目的:解决node/shard宕掉之后的高可用;提高查询的并发,可以并行在所有副本上执行查找。

2,Mapping映射(相当于表结构)

1)一个Index可以有多个Mapping type,每个document都属于一个Type类型,每个Type都有自己的Mapping映射,存储field type和field信息。

image.png

dynamic mapping 规则,可以不定义直接使用mapping。
image.png

2)查看type对应的mapping映射curl 172.17.6.11:9200/dby_course_info/_mapping/course_info?pretty。查看index中type对应的mapping。
3)mapping还可以设置关联到type类型上的元数据,Meta-fields元数据字段,以下划线开头,eg: _index, _type, _id, and _source fields.
image.png

properties属性(fields)。

{
    "properties": {
        "roomId": {
            "type": "text",
            "fields": {
                "keyword": {
                    "type": "keyword",
                    "ignore_above": 256
                }
            }
        }
    }
}

4)创建mapping。
image.png

3,template模板

1)查看模板。curl 172.17.6.11:9200/_template/dby_template?pretty
"template" : "dby_*" : 声明模板对那些index有效。

2)模板包括setting和mapping。对于所有te开头的index都生效。
当创建一个新的索引,以te开头时,匹配成功后会按照settings和mappings创建一个新的索引。

{
    "template": "te*",
    "settings": {
        "number_of_shards": 5,
        "number_of_replicas": 1
    },
    "mappings": {
        "type1": {
            "_source": {
                "enabled": false
            }
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容