初识ElasticSearch
倒排索引
倒排索引
以唐诗为例,所处包含“前”的诗句
正向索引:由《静夜思》-->窗前明月光--->“前”字
反向索引:“前”字-->窗前明月光-->《静夜思》
反向索引的实现就是对诗句进行分词,分成单个的词,由词推据,即为反向索引
“床前明月光”--> 分词
将一段文本按照一定的规则,拆分为不同的词条(term)
ES存储和查询的原理
index(索引):相当于mysql的库
映射:相当于mysql 的表结构
document(文档)
数据库查询存在的问题:
-
性能低:使用模糊查询,左边有通配符,不会走索引,会全表扫描,性能低
-
功能弱:如果以”华为手机“作为条件,查询不出来数据
Es使用倒排索引,对title 进行分词
-
生成的倒排索引中,词条会排序,形成一颗树形结构,提升词条的查询速度
-
使用“华为手机”作为关键字查询
华为:1,3
ES概念详解
•是一个分布式、高扩展、高实时的搜索与数据分析引擎
•基于RESTful web接口
•Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎
应用场景
•搜索:海量数据的查询
•日志数据分析
•实时数据分析