ElasticSearch 是什么?
ElasticSearch是一个分布式、Restfui 风格的搜索和数据分析引擎,国内简称ES, ElasticSearch 是用Java开发的,底层基于Lucene,Lucene是一种全文的索引库,直接采用Lucene是比较麻烦的,Elasticsearch在Lucene的基础上开发了一个强大的搜索引擎。
- ELK是什么?
使用到ES, 那么ELK是绕不过去的一环, ELK代表了Elasticsearch + Logstash + Kibana 三套软件,他们的作用如下:
- Elasticsearch - 前面简介提到过,解决海量数据搜索问题。
- Logstash - 解决数据同步问题,因为我们数据一般存储在Mysql之类的数据库中,需要将数据导入到ES中,Logstash就支持数据同步、数据过滤、转换功能。
- Kibana - Elasticsearch数据可视化支持,例如:通过各种图表展示ES的查询结果,也可以在Kibana通过ES查询语句分析数据,起到类似ES Web后台的作用。
- ES的应用场景
- 各种搜索场景,例如:订单搜索、商品搜索。
- 日志处理和分析,例如:通过ELK搭建日志处理和分析方案。
- 地理空间数据搜索,例如:查询距离最近的店铺、查询某个空间范围内的店铺。
基本概念
- index(索引)
在Elasticsearch中索引(ind