简介:
Elasticsearch是一款非常强大的开源搜索引擎,Elasticsearch还有关联的一整套技术栈,包含Kibana、Logstash等组件,称为ELK。被广泛应用在日志数据分析、系统实时监控等领域。Elasticsearch核心是基于Apache Lucene库实现的。
Elasticsearch有如此高性能的搜索表现,是基于底层的倒排索引技术,而MySQL是基于正向索引。
正向索引和倒排索引:
-
正向索引是最传统的,根据id索引的方式。但根据词条查询时,必须先逐条获取每个文档,然后判断文档中是否包含所需要的词条,是根据文档找词条的过程。
-
而倒排索引则相反,是先找到用户要搜索的词条,根据词条得到保护词条的文档的id,然后根据id获取文档。是根据词条找文档的过程。
优缺点:
正向索引:
-
优点:可以给多个字段创建索引,根据索引字段搜索、排序速度非常快;
-
缺点:根据非索引字段,或者索引字段中的部分词条查找时,只能全表扫描
倒排索引:
-
优点:根据词条搜索、模糊搜索时,速度非常快;
-
缺点:只能给词条创建索引,而不是字段,无法根据字段做排序;
基本概念:
Elasticsearch中有很多独有的概念,与mysql中略有差别&#x