Elasticsearch 入门篇(一)
1、Elasticsearch是什么
Elaticsearch,简称为 ES,ES 是一个开源的高扩展的分布式全文搜索引擎。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别的数据。
2、Elasticsearch的应用
Google,百度类的网站搜索,大型的电商网站它们都是根据网页中的关键字生成索引,我们在搜索的时候输入关键字,它们会将该关键字即索引匹配到的所有网页返回;还有常见的项目中应用日志的搜索等等。对于这些非结构化的数据文本,关系型数据库搜索不是能很好的支持。一般传统数据库,全文检索都实现的很鸡肋,因为一般也没人用数据库存文本字段。进行全文检索需要扫描整个表,如果数据量大的话即使对 SQL 的语法优化,也收效甚微。就需要专业,健壮,强大的全文搜索引擎这里说到的全文搜索引擎指的是目前广泛应用的主流搜索引擎。它的工作原理是计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程(倒排索引)。
需要大范围初略查询数据时使用Elasticsearch是比较好的,而传统关系型数据更适用于结构化数据的精确查询
3、Elasticsearch与传统关系型数据库的区别
1.传统关系型数据库是以数据库为主,而Elasticsearch是以索引为主
2.传统关系型数据库存储的数据如Excel似的结构,而Elasticsearch既可以是结构化数据如:Json,也可以是非结构化数据如:软件运行的项目日志等
3.传统关系型数据库使用的是B+树索引,而Elasticsearch采用倒排索引
4、ELK
在实际生产环境中,我们一般是将ELK搭配使用的。E代表Elasticsearch,主要是储存查询数据;L 代表Logstash,借助它可以将数据库和日志等结构化或非结构化数据轻松导入ES中;K代表Kibana,它可以将查询结果图形化展示,还可以使用它与ES进行交互。