一.概念:
- Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。
- 存储,计算,搜索
- Elasticsearch是与名为Logstash的数据收集和日志解析引擎以及名为Kibana的分析和可视化平台一起开发的。这三个产品被设计成一个集成解决方案,称为“Elastic Stack”(以前称为“ELK stack”)
- ELK的核心:
- 存储,搜索和分析数据
- Kibana:数据可视化(可视化界面)
- Logstash 数据抓取
- es的来源:
- 基于lucene,他也是一个搜索引擎,Apache下的一个顶级项目,是基于Java的类库
- Lucene的优势:
- 易扩展,高性能(基于倒排索引)
- Lucene的缺点:
- 只限于Java,不支持水平扩展
- ES的优势:
- 支持分布式,支持水平扩展,
- 提供restfull接口,可以被任何语言使用
- 为什么要学es
- 目前排名:第一,es;第二,splunk;第三,solr(Apache基金会)
- 架构分析:
-
,mysql事物类型的搜索
-
-
必须要清楚:什么是es,elk,lucene?
- 正向索引,倒排索引
- id title price
- 1 小米手机 2000
- 2 华为手机 5000
- 3 小米手环 5000
- 词条term 文档ID
- 小米 1,3
- 手机 1,2
- 华为 2
- 小米手环 3
- 文档document 相当于一条记录row
- 什么是文档,什么是词条?
- 词条:文档内容进行分词,得到的词语就是词条
- 正向索引,倒排索引
- es是面向文档来存储的。
- 文档数据会被序列化为json格式后,存储在es中
- 索引:
- 文档的集合,可以对比理解为表
- 用户索引,商品索引,订单索引,图书索引。。。
- 映射mapping
- 索引当中文档的字段约束信息,可以理解为表中结构的约束
- es与MySQL的对应关系类比
- MySQL es
- table index
- row document
- column field
- schema mapping
- sql DSL