1.1 、ElasticSearch(简称ES)
Elasticsearch是用Java开发并且是当前最流行的开源的企业级搜索引擎。
能够达到实时搜索,稳定,可靠,快速,安装使用方便。
客户端支持Java、.NET(
C#)、PHP、Python、Ruby等多种语言。
官方网站:
https://www.elastic.co/
下载地址:
https://www.elastic.co/cn/start
本文以ES7.6版本来整理。
1.2、应用场景:
关键字,模糊查询无法实现,ES可以,且高亮显示。
1.3、ES核心是Lucene——ElasticSearch与Lucene的关系
ES的底层使用的还是Lucene。
Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库(框
架)
但是想要使用Lucene,必须使用Java来作为开发语言并将其直接集成到你的应用
中,并且Lucene的配置及使用非常复杂,你需要深入了解检索的相关知识来理解它
是如何工作的。
Lucene缺点:
1)只能在Java项目中使用,并且要以jar包的方式直接集成项目中.
2)使用非常复杂-创建索引和搜索索引代码繁杂
3)不支持集群环境-索引数据不同步(不支持大型项目)
4)索引数据如果太多就不行,索引库和应用所在同一个服务器,共同占用硬
盘.共用空间少.
上述Lucene框架的缺点,ES全部都能解决。因此ES应用很广泛。
1.4、 ES vs Solr比较
ES vs Solr 检索速度:
当单纯的对已有数据进行搜索时,Solr更快。
当实时建立索引时, Solr会产生io阻塞,查询性能较差, Elasticsearch具有明显的优势。
大型互联网公司,实际生产环境测试,将搜索引擎从Solr转到 Elasticsearch以后的
平均查询速度有了50倍的提升。
总结:
二者安装都很简单。
1、Solr 利用 Zookeeper 进行分布式管理,而Elasticsearch 自身带有分布式协调
管理功能。
2、Solr 支持更多格式的数据,比如JSON、XML、CSV,而 Elasticsearch 仅支持json文件格式。
3、Solr 在传统的搜索应用中表现好于 Elasticsearch,
但在处理实时搜索应用时效率明显低于 Elasticsearch。
4、Solr 是传统搜索应用的有力解决方案,但 Elasticsearch更适用于新兴的实时搜索应用。
1.5、ES 与关系型数据库 类比
关系型数据库里一行代表一条记录,ES里一个Document代表一条记录。(JSON结构数据)
ES的客户端常用Kibana,参考Kibana是什么,干什么用?详细入门教程_qiandeqiande的博客-CSDN博客_kibana