Elastic Search是什么
一个分布式的全文检索系统,基于RESTful web接口,具有高性能,高可用等特点。
为什么用Elastic Search?
检索比Mysql快,在要检索的数据是上亿级别的时候,一个聚合查询Mysql可能要800s,ES可能只需要1s,且ES具有分布式高可用的特点,非常适合中小型公司使用。
项目中用Elastic Search做什么?
收集数据,快速检索分析,日志分析。
Elastic Search为什么那么快?
基于Lucene,原理是倒排索引,简单来说就是给要检索的文档加了一个可以快速查询数据的目录,可以快速检索。
概念和Mysql数据库的对应
Index(索引)~Database(数据库)
Type(类型)~Table(表)
Document(文档)~Row(行)
Field(字段)~Column(列)
Mapping(映射)~Schema(方案)
Query DSL(查询专用语言)~SQL(结构化查询语言)
如何使用ES
1.搜索“在Windows/linux/Mac安装ElasticSearch”
2.使用ES的JAVA API并结合文档进行操作ElasticSearch
ES Java API
我们可以在Spring Boot里引入官方推荐的依赖,来操作Elastic Search,
官方文档写的很详细:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high-create-index.html,此处就不多介绍如何使用。
或者自己封装一个Client,官方封装的其实并不是很好,其实我们可以做一个更好的。
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.2.0</version>
</dependency>