1.1.2.ELK技术栈
elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK);被广泛应用在日志数据分析,实时监控等领域:
而elasticsearch是elastic stack的核心,负责存储,搜索,分析数据;
1.1.5.总结
* 什么是elasticsearch?
一个开源的分布式搜索引擎,可以用来实现搜索,日志统计,分析,系统监控等功能
* 什么是elastic stack(ELK)?
是以elasticsearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch
* 什么是Lucene?
是Apache的开源搜索引擎类库,提供了搜索引擎的核心API
倒排索引
倒排索引的概念是基于MySQL这样的正向索引而言的
那么什么是正向索引呢?例如给下表(tb_goods)中的id创建索引:
如果是根据id查询,那么直接走索引,查询速度非常快
但如果是基于title做模糊查询,只能是逐行扫描数据,流程如下:
1)用户搜索数据,条件是title符合"%手机"
2) 逐行获取数据,比如id为1的数据
3)判断数据中的title是否符合用户搜索条件
4)如果符合则放入结果集。不符合则丢弃;回到步骤1
逐行扫描,也就是全表扫描,随着数据量增加,其查询效率也会越来越低;当数据量达到数百万时,就是灾难;
倒排索引
倒排索引中有2个非常重要的概念:
文档:用来搜索的数据,其中的每一条数据就是一个文档;例如一个网页,一个商品信息
词条:对文档数据或用户搜索数据