跳转至

Elasticsearch 简介

时间:2017-12-21 14:29:00

参考:

  1. Elasticsearch: 权威指南

环境:

  • 系统版本:Win10 64位
  • Elasticsearch版本:6.0.0

简单介绍#

是什么?#

分布式的文档存储和检索引擎。可以存储非结构化数据数据以及对存储数据进行复杂的搜索。

核心概念:

  • 索引、类型、id:索引是一个大分类,用于归类文档,类型在新版本已经取消(一个索引下存储的文件结构尽可能相似),id是一个具体文档的标志。
  • 主分片、副分片:主分片用于存放数据,副分片时主分片的复制。
  • 倒排索引:快速查找哪个文档里面有哪个个字段的数据结构,记录一个词项出现在哪个文档。

    Term      Doc_1  Doc_2
    -------------------------
    Quick   |       |  X
    The     |   X   |
    brown   |   X   |  X
    dog     |   X   |
    dogs    |       |  X
    fox     |   X   |
    foxes   |       |  X
    in      |       |  X
    jumped  |   X   |
    lazy    |   X   |  X
    leap    |       |  X
    over    |   X   |  X
    quick   |   X   |
    summer  |       |  X
    the     |   X   |
    ------------------------
    
  • 映射:文档字段的数据类型

  • 分析与分析器:

    • 字符过滤器:首先,字符串按顺序通过每个 字符过滤器 。他们的任务是在分词前整理字符串。一个字符过滤器可以用来去掉HTML,或者将 & 转化成 `an
    • 分词器:其次,字符串被 分词器 分为单个的词条。一个简单的分词器遇到空格和标点的时候,可能会将文本拆分成词条。
    • Token 过滤器:最后,词条按顺序通过每个 token 过滤器 。这个过程可能会改变词条(例如,小写化 Quick ),删除词条(例如, 像 aandthe 等无用词),或者增加词条(例如,像 jump 和 leap 这种同义词)。
    • 游标查询:指定数据的条目,查询结果会包含一个游标,使用这一个游标可以查询除了前面已经查询过的数据。

    • 查询语法(游标保留时间1分钟):

    `json GET /old_index/_search?scroll=1m { "query": { "match_all": {}}, "sort" : ["_doc"], "size": 1000 }

    • 查询下一批数据

    json GET /_search/scroll { "scroll": "1m", "scroll_id" : "cXVlcnlUaGVuRmV0Y2g7NTsxMDk5NDpkUmpiR2FjOFNhNnlCM1ZDMWpWYnRROzEwOTk1OmRSamJHYWM4U2E2eUIzVkMxalZidFE7MTA5OTM6ZFJqYkdhYzhTYTZ5QjNWQzFqVmJ0UTsxMTE5MDpBVUtwN2lxc1FLZV8yRGVjWlI2QUVBOzEwOTk2OmRSamJHYWM4U2E2eUIzVkMxalZidFE7MDs=" }

可以做什么?#

  1. 日志分析。
  2. 地理位置范围查询。
  3. 文档查询,以及评分。
  4. 聚合统计,分析数据。