ElasticSearch 学习 概述
概述
是什么?
Elasticsearch,简称ES,是一个基于Apache Lucene做了一些封装和增强,一个高扩展的分布式全文搜索引擎,可以近乎实时的存储,检索数据.并且开源.
起什么作用?
全文搜索,结构化搜索,分析,还可以将三者混合使用.
为什么是 ES?
为什么不选Lunece?
Lucene 是一套信息检索工具包(jar 包),不包含搜索引擎系统.
想要使用 Lucene :
- 必须使用
Java来作为开发语言并将其直接集成到你的应用中. Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。
对比之下, ES 也使用 Java 开发并使用 Lucene 作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API 来隐藏Lucene 的复杂性,从而让全文搜索变得简单.
为什么不选 Solr?
Solr的安装更复杂,ES基本是开箱即用(解压就可以用)ElasticSearch本身自带分布式协调管理功能,而Solr需要Zookeeper进行分布式管理
但是 Solr 也有其强项
Solr支持更多格式的数据,比如JSON、XML、CSV,而Elasticsearch仅支持json文件格式Solr官方提供的功能更多,而Elasticsearch本身更注重于核心功能,高级功能多有第三方插件提供,例如图形化界面需要kibana友好支撑Solr比较成熟,有一个更大,更成熟的社区,而Elasticsearch相对开发维护者较少,更新太快,学习使用成本较高.
选型
- Solr查询快,但更新索引时慢(即插入删除慢),用于电商等查询多的应用.
- ES建立索引快 (即查询慢),即实时性查询快,用于facebook新浪等搜索.
- Solr是传统搜索应用的有力解决方案,但Elasticsearch更适用于新兴的实时搜索应用

浙公网安备 33010602011771号