为什么要使用ElasticSearch?

什么是 elasticSearch

  1. 基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎
  2. 分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索、
  3. 横向扩展至数以百计的服务器存储以及处理PB级的数据
  4. 极短的时间内存储、搜索和分析大量的数据

高可用和可扩展

垂直/向上扩展:购置性能更强的服务器或者升级硬件来完成系统扩展
水平/向外扩展:增加更多的服务器来完成系统扩展
尽管ES能够利用更强劲的硬件,垂直扩展毕竟还是有它的极限。真正的可扩展性来自于水平扩展,通过向集群中添加更多的节点来分担负载,增加可靠性,因为ES天生就是分布式的,它知道如何管理多个节点来完成扩展和实现高可用性。这也意味你的应用不需要做任何的改动

使用场景

分布式搜索引擎(搜索查询)和数据分析引擎(用户埋点)

  • 关系型数据库查询瓶颈:考虑使用,ES的优点在于查询,然而实践证明,在被作为数据库来使用,即写完马上查询会有延迟
  • 用户行为日志:直接用
  • 搜索场景:直接用

elasticSearch和Lucene、Solr的区别

ES与Lucene的区别

  • Lucene,必须使用Java来作为开发语言并将其直接集成到你的应用中,并且Lucene的配置及使用非常复杂,你需要深入了解检索的相关知识来理解它 是如何工作的。lucene有很多缺陷,es并不存在。
  • 只能在Java项目中使用,并且要以jar包的方式直接集成项目中
  • 使用非常复杂-创建索引和搜索索引代码繁杂
  • 不支持集群环境-索引数据不同步(不支持大型项目)
  • 索引数据如果太多就不行,索引库和应用所在同一个服务器,共同占用硬盘共用空间少.

ES与Solr对比

  1. 单纯对已有数据进行搜索时,solr更快;但是实时简历索引时,solr会产生io阻塞,查询性能较差。而es不会
  2. solr利用zk进行分布式管理,而es自身带有分布式协调管理功能。
  3. solr支持更多的数据格式,如json、xml、csv等,而es仅支持json文件格式
  4. solr在传统的搜索应用中表现好于es,但在处理实时搜索应用时效率明显低于es。

ES的几大优势

  1. 很简便的横向扩容,分布式的架构,可以轻松地对资源进行横向纵向扩缩容,可以满足不同数据量级及查询场景对硬件资源的需求。能由数百台到万台机器搭建满足PB级的快速搜索,也能搭建单机版服务小公司。
  2. 查询速度快:ES底层采用Lucene作为搜索引擎,并在此之上做了多重优化,保证了用户对数据查询数据的需求。可"代替"传统关系型数据库,也可用于复杂数据分析,海量数据的近实时处理等。
  3. 相关性高:ES内部提供了完善的评分机制,会根据分词出现的频次等信息对文档进行相关性排序,保证相关性越高的文档排序越靠前。另外还提供了包括模糊查询,前缀查询,通配符查询等在内的多种查询手段,帮助用户快速高效地进行检索。
  4. 功能点多但使用比较简便,开箱即用,性能优化比较简单
  5. 分布式:索引分拆成多个分片,每个分片可有零个或多个副本。集群中的每个数据节点都可承载一个或多个分片,并且协调和处理各种操作

ES相比于传统MySQL的优点

A relational database can store data and also index it. A search engine can index data but also store it.
关系型数据库首先是存储,搜索只是顺便提供的功能,
而搜索引擎,首先是搜索,但是不把数据存下来就搜不了,所以只好存一存
术业有专攻,专攻搜索的搜索引擎,自然会提供更强大的搜索能力

  1. 模糊查询
    在传统关系型数据库中,数据检索只能通过 like 来实现,例如需要在酒店数据中查询名称包含公寓的酒店,需要通过如下 sql 实现:
    select * from hotel_table where hotel_name like ‘%公寓%’;
    问题:
    ·无法使用数据库索引,需要全表扫描,性能差
    ·搜索效果差,只能首尾位模糊匹配,无法实现复杂的搜索需求
    ·无法得到文档与搜索条件的相关性
    和「精确匹配」相比,「相关性匹配」更贴近人的思维方式。
  2. 分词
    当用户使用Elasticsearch时进行搜索时,Elasticsearch就自动分好词
  3. 相关性
    Elasticsearch支持全文搜索和相关度评分。这样在返回结果就会根据分数由高到低排列。分数越高,意味着和查询语句越相关
  4. 性能
  5. 轻松支持各种复杂的查询条件
  6. 它是分布式实时文件存储,会把每一个字段都编入索引(倒排索引),利用高效的倒排索引,以及自定义打分、排序能力与丰富的分词插件等,能实现任意复杂查询条件下的全文检索需求
  7. 可拓展性强
    天然支持分布式存储,通过极其简单的配置实现几百上千台服务器的分布式横向扩容,轻松处理 PB 级别的结构化或非结构化数据。
  8. 高可用,容灾性能好
    通过主备节点以及故障自动探测和恢复,有力保障了高可用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值