设为首页 收藏本站
查看: 1533|回复: 0

[经验分享] 实时的分布式搜索和分析引擎——Elasticsearch

[复制链接]

尚未签到

发表于 2019-1-29 11:47:39 | 显示全部楼层 |阅读模式
    Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。
    但是,Lucene只是一个库。想要使用它,你必须使用Java来作为开发语言并将其直接集成到你的应用中,更糟糕的是,Lucene非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的。
    Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。
DSC0000.jpg

    不过,Elasticsearch不仅仅是Lucene和全文搜索,我们还能这样去描述它:



  • 分布式的实时文件存储,每个字段都被索引并可被搜索
  • 分布式的实时分析搜索引擎
  • 可以扩展到上百台服务器,处理PB级结构化或非结构化数据
    而且,所有的这些功能被集成到一个服务里面,你的应用可以通过简单的RESTful API、各种语言的客户端甚至命令行与之交互。
    Elasticsearch的主要应用场景有:


  • 它提供了强大的搜索功能,可以实现类似百度、谷歌等搜索。
  • 可以搜索日志或者交易数据,用来分析商业趋势、搜集日志、分析系统瓶颈或者运行发展等等。
  • 可以提供预警功能(持续的查询分析某个数据,如果超过一定的值,就进行警告)。
  • 分析商业信息,在百万级的大数据中轻松的定位关键信息。
DSC0001.jpg
    我们再来看看Elasticsearch的真实使用案例


  • 维基百科使用Elasticsearch来进行全文搜做并高亮显示关键词,以及提供search-as-you-type、did-you-mean等搜索建议功能。
  • 英国卫报使用Elasticsearch来处理访客日志,以便能将公众对不同文章的反应实时地反馈给各位编辑。
  • StackOverflow将全文搜索与地理位置和相关信息进行结合,以提供more-like-this相关问题的展现。
  • GitHub使用Elasticsearch来检索超过1300亿行代码。
  • 每天,Goldman Sachs使用它来处理5TB数据的索引,还有很多投行使用它来分析股票市场的变动。
    但是Elasticsearch并不只是面向大型企业的,它还帮助了很多类似DataDog以及Klout的创业公司进行了功能的扩展

DSC0002.jpg
    那Elasticsearch到底有哪些优点呢?

  • Elasticsearch是分布式的。不需要其他组件,分发是实时的,被叫做”Push replication”。
  • Elasticsearch 完全支持 Apache Lucene 的接近实时的搜索。
  • 处理多租户(multitenancy)不需要特殊配置,而Solr则需要更多的高级设置。
  • Elasticsearch 采用 Gateway 的概念,使得完备份更加简单。
  • 各节点组成对等的网络结构,某些节点出现故障时会自动分配其他节点代替其进行工作。
DSC0003.jpg
    要了解Elasticsearch 首先就要弄清楚下面的几个概念,这样也不会对Elasticsearch 产生一些误解:
1 近实时
    Elasticsearch 并不是一个标准的数据库,它不像MongoDB,它侧重于对存储的数据进行搜索。因此要注意到它 不是 实时读写 的,这也就意味着,刚刚存储的数据,并不能马上查询到。
    当然这里还要区分查询的方式,Elasticsearch 也有数据的查询以及搜索,这里的近实时强调的是搜索....
2 集群
    在Elasticsearch 中,对用户来说集群是很透明的。你只需要指定一个集群的名字(默认是elasticsearch),启动的时候,凡是集群是这个名字的,都会默认加入到一个集群中。
    你不需要做任何操作,选举或者管理都是自动完成的。
    对用户来说,仅仅是一个名字而已!
3 节点
    跟集群的概念差不多,Elasticsearch 启动时会设置这个节点的名字,一个节点也就是一个Elasticsearch 得服务器。
    默认会自动生成一个名字,这个名字在后续的集群管理中还是很有作用的,因此如果想要手动的管理或者查看一些集群的信息,最好是自定义一下节点的名字。
DSC0004.jpg
4 索引
    索引是一类文档的集合,所有的操作比如索引(索引数据)、搜索、分析都是基于索引完成的。
    在一个集群中,可以定义任意数量的索引。
5 类型
    类型可以理解成一个索引的逻辑分区,用于标识不同的文档字段信息的集合。但是由于Elasticsearch 还是以索引为粗粒度的单位,因此一个索引下的所有的类型,都存放在一个索引下。这也就导致不同类型相同字段名字的字段会存在类型定义冲突的问题。
    在2.0之前的版本,是可以插入但是不能搜索;在2.0之后的版本直接做了插入检查,禁止字段类型冲突。
6 文档
    文档是存储数据信息的基本单元,使用json来表示。
7 分片与备份
    在Elasticsearch 中,索引会备份成分片,每个分片是独立的lucene索引,可以完成搜索分析存储等工作。
DSC0005.jpg
    现在是不是对Elasticsearch 的了解更深了一点?想不想实际使用一下?扫描下方二维码或者点击“阅读原文”马上去云市使用Elasticsearch !
DSC0006.jpg
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-669141-1-1.html 上篇帖子: Elastic stack 下篇帖子: 修改elasticsearch映射模板——替换默认的logstash映射模板为nginx开头的模板
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表