ElasticSearch—初入桃源(未完)

ElasticSearch是什么,能做什么,怎么做到的。接下里的一段时间里,会对es的概念、功能以及原理进行全方位的学习和理解。你搭过ELK,不见得懂得每一个内部原理。仅仅停留在表面上,不是我的风格。进一步挖掘,前段时间由于加入一个新的项目组,时间上来说不太友好,所以趁着快过年的几天集火输出一波。希望明天的自己能感谢今天的努力。无论以后路走到哪里。下文中elasticsearch简称es。
  1. elasticsearch 是什么?
Elasticsearch 是一个分布式可扩展的实时搜索和分析引擎,一个建立在全文搜索引擎 Apache Lucene(TM) 基础上的搜索引擎.
2.es能做什么
  • 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
  • 实时分析的分布式搜索引擎。
  • 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。
  • (hhhh 是不是听起来很D)
3 es的基本概念
为了方便理解,用对比方式的来说明
关系型数据库–>ElasticSearch
库(database) 索引(index)
表(table) 类型(Type)
行(row) 文档(document)
列(column) 字段(fields)
  • 索引
    • ES将数据存储于一个或多个索引中,索引是具有类似特性的文档的集合
    • 索引由其名称(必须全小写字符)进行标识,并通过引用此名称完成文档的创建、搜索、更新及删除操作。
  • 类型
    • 类型是索引内部的逻辑分区(category/partition),一个索引内部可定义一个或多个类型(type)。
  • 文档
    • 文档是索引和搜索的原子单位,它是包含了一个或多字段(field)的容器,采用JSON格式表示。文档由一个或多个字段组成,每个字段拥有一个名字及一个或多个值,对于es来说一条数据就是一个文档:
    • { “name” : “Jack”, “sex” : “Male”, “age” : 18, “birthDate”: “2003/05/01”, “about” : “I love dudu”, “interests”: [ “sports”, “game” ] }
    • 文档元数据:
      • 一个文档不仅仅包含它的数据 ,也包含 元数据 —— 有关 文档的信息。 三个必须的元数据元素如下:
  1. _index 文档在哪存放
    1. 一个 索引 应该是因共同的特性被分组到一起的文档集合。
    2. 名字必须小写,不能以下划线开头,不能包含逗号
  2. _type 文档表示的对象类别
    1. 一个 _type 命名可以是大写或者小写
    2. 不能以下划线或者句号开头,不应该包含逗号。
    3. 长度限制为256个字符
  3. _id 文档唯一标识
    1. ID 是一个字符串,当它和 _index 以及 _type 组合就可以唯一确定 Elasticsearch 中的一个文档。 当你创建一个新的文档,要么提供自己的 _id ,要么让 Elasticsearch 帮你生成
    2. es允许自己设置id,也可以由es根据URL-safe,基于Base64编码且长度为20个字符的GUID字符串。这些 GUID 字符串由可修改的 FlakeID 模式生成,这种模式允许多个节点并行生成唯一 ID ,且互相之间的冲突概率几乎为零。
  • 字段:
    • 字段的名字可以是任何合法的字符串,但不可以 包含英文句号(.)。
term
posting list
term dictionary
term index

发表评论

电子邮件地址不会被公开。 必填项已用*标注