大数据 - Es

作者: 万福来 | 来源:发表于2020-04-03 17:41 被阅读0次

大数据 - Es

文档(Document)

Elasticsearch面向文档性,文档就是所有可搜索数据的最小单位。

元数据(标注文档信息)

"_index" : "user",
"_type" : "_doc",
"_id" : "l0D6UmwBn8Enzbv1XLz0",
"_score" : 1.6943597,
"_source" : {
    "user" : "mj",
    "sex" : "男",
    "age" : "18"
}

_index:文档所属的索引名称。 相当于mysql的库名。
_type:文档所属的类型名。 相当于mysql的表名。
_id:文档的唯一标识。 相当于mysql的表主键ID
_version:文档的版本信息。
_score:文档的相关性打分。
_source:文档的原始JSON内容。

索引(index)

索引是文档的容器,是一类文档的集合,类似关系数据库中的表,索引体现的是一种逻辑空间的概念,每个索引都应该有自己的Mapping定义,用于定义包含文档的字段名和字段类型。其中Shard(分片)体现的是物理空间的一种概念,就是索引中的数据存放在Shard上,因为有啦集群,要保证高空用,当其中一个机器崩溃中,保存在它上的分片数据也能被正常访问,因此,存在啦分片副本。
索引中有两个重要的概念,Mapping和Setting。Mapping定义的是文档字段和字段类型,Setting定义的是数据的不同分布。

类型(Type)

在7.0之前,一个index可以创建多个Type。之后就只能一个index对应一个Type。
节点(Node)
一个节点就是一个Elaseticsearch实例,本质就是一个JAVA进程。每一个节点启动后,默认就是一个master eligible节点。就是具备成为master资格的节点,你也可以狠心的指定它没有这个资格(node.master:false),
第一个节点启动后,他就选自己成为Master节点类,每一个节点上都保存了集群状态,但是,只有Master才能修改集群状态信息。集群状态信息就比如:

  • 所有的节点信息。
  • 所有的索引信息,索引对应的mapping信息和setting信息。
  • 分片的路由信息。

分片(shard)

主分片:用于解决数据的水平扩展问题,通过主分片就数据分布在集群内的不同节点上,主分片在创建索引的时候就指定了,后面就不允许修改,除非重新定义Index。
副本:用于解决高可用的问题,分片是主分片的拷贝。副本分片数可以动态的调整,增加副本数量可以在一定的程度上提高服务的可用性。关于主分片的理解可以如下图,看是怎样实现高可用的,


image.png
"settings" : {
    "index" : {
        // 设置主分片数
        "number_of_shards" : "1",
        "auto_expand_replicas" : "0-1",
        "provided_name" : "kibana_sample_data_logs",
        "creation_date" : "1564753951554",
        // 设置副本分片数
        "number_of_replicas" : "1",
        "uuid" : "VVMLRyw6TZeSfUvvLNYXEw",
        "version" : {
            "created" : "7010099"
        }
    }
}

倒排索引

  • 正排索引:就是文档ID到文档内容的索引,简单讲,就是根据ID找文档。
  • 倒排索引:就是根据文档内容找文档。
    倒排索引包含如下信息:
    单词词典:用于记录所有文档的单词,以及单词到倒排列表的关联关系。
    倒排列表:记录的是单词对应的文档集合,由倒排索引项组成,其中包含
    文档ID
    单词出现的次数,用于相关性的评分
    单词出现的位置
    偏移量,用于记录单词的开始位置和结束位置,用于单词的高亮显示

Analyzer分词

  • Analysis:文本分析,就是将文本转换为单词(term或者token)的过程,其中Analyzer就是通过Analysis实现的,Elasticsearch给我们内置例很多分词器。
  • Standard Analyzer:默认的分词器,按照词切分,并作大写转小写处理
  • Simple Analyzer:按照非字母切分(符号被过滤),并作大写转小写处理
  • Stop Anayzer:停用词(the、is)切分,并作大写转小写处理
  • Whitespace Anayzer:空格切分,不做大写转小写处理
  • IK:中文分词器,需要插件安装
  • ICU:国际化的分词器,需要插件安装
  • jieba:时下流行的一个中文分词器。

相关文章

  • ES

    ES 三大操作: 构建索引、检索数据、聚合数据 ES 特性: 分布式、倒排索引、近实时、相似精度 适用场景: 倒排...

  • ES索引查询匹配,简单记录

    存入数据代码,以及es删除索引数据 从es里查询数据------单匹配查询

  • Elasticsearch精学笔记(二)

    三、ES数据操作 1. ES的数据体ES中的文档存储的是序列化后的JSON数据;ES都基于JSON结构体进行请求和...

  • es

    数据迁移 es,es是一个开源的搜索引擎,es包括数据存储和数据检索,搜索数据会比 mysql 快很多,搜索接口是...

  • ElasticSeach

    ES基本概念(ES是非关系型数据库) Index(索引-数据库): ES 数据管理的顶层单位就叫做 Index(索...

  • Elasticsearch 的安装与使用(三): python操

    1.python链接ES: 可以指定链接的ES的IP 2.ES插入数据: 2.1 插入单条数据 2.2批量插入数据...

  • es读优化

    es搜索数据 es搜索数据流程 es读写流程示意图 分布式搜索示意图image.png es的几种搜索类型 QUE...

  • ES-DSL基本使用

    ES版本:6.8 本篇文章主要介绍在ES中如何进行数据的增删查改 新增数据 ES可以直接新增数据,没有索引会自动创...

  • Elasticsearch 篇之数据建模

    数据建模简介 ES数据建模配置 norms是算分排序用的 ES数据建模实例 Nested_Object Paren...

  • 汇编: 实验7寻址方式在结构化数据访问中的应用

    1. 题目 2. 实现代码 3. 运行前后对比 初始化ES指针1) 初始化ES指针 ES处数据2) ES处数据 D...

网友评论

    本文标题:大数据 - Es

    本文链接:https://www.haomeiwen.com/subject/aoskphtx.html