ES 应用场景
前言
我们之前有讨论过,ES 和 Solr 的功能实现上其实差别不大,没有什么功能比如说是 ES 有的而 Solr 是没有的。
为什么这么说呢?其实也很好理解,毕竟都是互相借鉴着来的嘛,这样才能共同进步。不然的话,你有的我没有,那大家还怎么选我的服务啊。
但是为什么我们最近一想到搜索引擎,或者是利用搜索引擎在自己公司里实现某些业务,我们第一反应都是 ES 呢?
个人理解有以下几点原因:
- ES 一直说自己是近实时搜索。其实近实时搜索是 Lucene 的功能,ES 和 Solr 都是基于 Lucene 实现的,所以都有了近实时搜索的功能,只不过 ES 一直在强调这点,而大家又比较关心这一点,所以一谈到搜索系统,大家首先想到的是 ES。
- ES 的生态更加好。我们都知道 ELK,实现了日志从收集到展示。以及其他的插件、服务等,非常友好,用户选择了 ES,就能方便的接入这些服务。
- 方便扩容。ES 能够实现平滑扩容,只要添加机器,就能够自动扩容,不需要使用 Zookeeper。其实 SolrClound 版本也能实现平滑扩容。
- 容易上手。ES 上手特别简单,无需大量配置即可上手。这也就是我们熟悉的“约定大于配置”。这也带来了一些局限性,比如在 Solr 中我们可以通过配置来修改字段类型,在 ES 中我们却不能修改了,只能重建索引。
既然 ES 这么火,今天我们就来看看 ES 都有哪些应用场景。
ES 应用场景
关系型数据库的补充、传统数据库的替代
ES 可以实现一些关系型数据库难以实现的功能,比如全文检索,ES 可以作为关系型数据库的补充,用来弥补关系型数据中的不足,也可能在某些情况下替代关系型数据库。
站内搜索、垂直搜索
电商网站的商品搜索可以说是站内搜索,和垂直搜索有交集。
什么是垂直搜索?
垂直搜索是针对某一行业的专业搜索引擎,是搜索的细分和延伸,对网页库中的某类专门的信息做一次整合,定向分字段抽取出需要的数据进行处理后再以某种形式返回给用户。
相较于通用搜索引擎的信息量大,查询不准确,深度不够,垂直搜索作为新的搜索引擎服务模式,通过针对某一特定领域,某一特定人群或者是某一特定需求,提供的有一定价值的信息和相关服务,更加专注、具体和深入,且具有一定的行业色彩。
通俗意义上,垂直搜索引擎是网站、APP 里面提供的搜索窗口,让用户通过搜索关键词就能直达目标内容。
淘宝、天猫、京东是电商商品领域的垂直搜索引擎。
知乎是知识问答领域的垂直搜索引擎。
谷歌、百度、必应则是面向通用领域、索引海量信息、试图服务全网用户的通用搜索引擎。
记录和日志分析
了解 ES 的都知道,这个功能不足为奇,围绕着 ES 构建的生态系统使其成为最容易实现的功能。
我们可以对海量数据进行近实时的处理,对复杂的日志进行分析,得到我们想要的结果。
全文检索
毫无疑问,作为 Elasticsearch 的核心功能,全文搜索在 ES 应用场景中占据着重要的位置。
应用场景案例
- DataDome 公司是一家全球网络安全公司,提供 SaaS 解决方案,旨在保护客户王赞免受 OWASP 的侵害。
- 2013年初,GitHub抛弃了Solr,采取ElasticSearch 来做PB级的搜索。
- 维基百科
- Stack Overflow
- 饿了么物流系统
- 京东到家订单系统
- 携程酒店订单、机票
- 去哪儿订单
- 等等
参考文档
本作品采用《CC 协议》,转载必须注明作者和本文链接