ES、Lucene、Solr的介绍和区别
一、介绍
1、ES
Elasticsearch是用Java开发并且是当前最流行的开源的企业级搜索引擎,支持多种语言
2、Lucene
Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库(框 架),
但是想要使用Lucene,必须使用Java来作为开发语言并将其直接集成到你的应用中
3、Solr
Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务。
Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。
Solr可以独立运行在Jetty、Tomcat等这些Servlet容器中
二、对比
ES与Lucene的区别
Lucene,必须使用Java来作为开发语言并将其直接集成到你的应用中,并且Lucene的配置及使用非常复杂,你需要深入了解检索的相关知识来理解它 是如何工作的。lucene有很多缺陷,es并不存在。
- 只能在Java项目中使用,并且要以jar包的方式直接集成项目中
- 使用非常复杂-创建索引和搜索索引代码繁杂
- 不支持集群环境-索引数据不同步(不支持大型项目)
- 索引数据如果太多就不行,索引库和应用所在同一个服务器,共同占用硬 盘.共用空间少.
ES与Solr对比
- 单纯对已有数据进行搜索时,solr更快;但是实时简历索引时,solr会产生io阻塞,查询性能较差。而es不会
- solr利用zk进行分布式管理,而es自身带有分布式协调管理功能。
- solr支持更多的数据格式,如json、xml、csv等,而es仅支持json文件格式
- solr在传统的搜索应用中表现好于es,但在处理实时搜索应用时效率明显低于es。
Solr与Lucene对比
Lucene是一个开放源代码的全文检索引擎工具包,它不是一个完整的全文检索引擎,Lucene提供了完整的查询引擎和索引引擎,目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者以Lucene为基础构建全文检索引擎。
Solr的目标是打造一款企业级的搜索引擎系统,它是一个搜索引擎服务,可以独立运行,通过Solr可以非常快速的构建企业的搜索引擎,通过Solr也可以高效的完成站内搜索功能。