一 概述
官网:Elasticsearch:官方分布式搜索和分析引擎 | Elastic
ElasticSearch很直接的左右就是进行搜索功能。
二 Lucene
Lucene是使用JAVA编写的提供全文搜索功能的组件,是一套信息检索的工具包,并不包含搜索引擎。
三 Nutch
Nutch是一个建立在Lucene核心上的网页搜索应用程序。它在Lucene的基础上增加了网络爬虫和一些网页相关的内容。实现一个简单站内搜索扩展到全国网络的搜索。
如Google一样,作为互联网搜索引擎,需要存储大量的网页,并不断的优化自己的搜索算法,以提高所搜效率。
如GFS(Google File System)——谷歌文件系统,解决了大数据存储问题,基于改理念出现了后来的NDFS(Nutch Distributed File System),分布式文件存储系统。
MapReduce编程模型——用于大数据集(大于1T)的并行分析计算。
基于NDFS和MapReduce的改造,最终出现了大数据领域的Hadoop。
基于Google的BigTable(一种分布式存储系统,可以用来处理海量数据的非关系型数据库),别引入hadoop的系统中后,被改名为HBase。
四 ElasticSearch
简单的来说,ElasticSearch是基于Lucene的封装与功能增强。简称为ES,作为一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储,检索数据,扩展性比较好。
ES利用Lucene作为核心,但是同时通过一些简单的方式来隐藏Lucene的复杂性,如对于Java而言,可以通过简单的RESTful api来完成全文检索的简单实现。
五 ElasticSearch的使用场景
1. GitHub实现代码项目搜索。
2. 电商网站搜索商品。
3. 日志分析系统,利用ELK(elasticsearch + logstash + kibana)技术。