您当前的位置: 首页 >  ar

Dongguo丶

暂无认证

  • 3浏览

    0关注

    472博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

03ElasticSearch概述

Dongguo丶 发布时间:2021-11-04 08:20:35 ,浏览量:3

Elasticsearch的功能

(1)分布式的搜索引擎和数据分析引擎

搜索:百度,网站的站内搜索,IT系统的检索 数据分析:在电商网站中,搜索最近7天牙膏这种商品销量排名前10的商家有哪些;在新闻网站中,搜索最近1个月访问量排名前3的新闻版块是哪些 分布式:搜索,数据分析

(2)全文检索, 结构化检索,数据分析

全文检索:我想搜索商品名称包含牙膏的商品,select * from products where product_name like “%牙膏%” 结构化检索:我想搜索商品分类为日化用品的商品都有哪些,select * from products where category_id=‘日化用品’ 部分匹配、自动完成、搜索纠错、搜索推荐 数据分析:我们分析每一个商品分类下有多少个商品,select category_id,count(*) from products group by category_id

(3)对海量数据进行近实时的处理

分布式:ES自动可以将海量数据分散到多台服务器上去存储和检索 海量数据的处理:分布式以后,就可以采用大量的服务器去存储和检索数据,自然而然就可以实现海量数据的处理了 近实时:在秒级别对数据进行搜索和分析 ;如果检索个数据要花费1小时(这就不要近实时了,适用离线批处理,batch-processing)

跟分布式/海量数据相反的:lucene,单机应用,只能在单台服务器上使用,最多只能处理单台服务器可以处理的数据量

Elasticsearch And Solr

Lucene 是 Apache 软件基金会 Jakarta 项目组的一个子项目,提供了一个简单却强大的 应用程式接口,能够做全文索引和搜寻。在 Java 开发环境里 Lucene 是一个成熟的免费开源 工具。就其本身而言, Lucene 是当前以及最近几年最受欢迎的免费 Java 信息检索程序库。 但 Lucene 只是一个提供全文搜索功能类库的核心工具包,而真正使用它还需要一个完善的 服务框架搭建起来进行应用。 目前市面上流行的搜索引擎软件,主流的就两款: Elasticsearch 和 Solr,这两款都是基 于 Lucene 搭建的,可以独立部署启动的搜索引擎服务软件。由于内核相同,所以两者除了 服务器安装、部署、管理、集群以外,对于数据的操作 修改、添加、保存、查询等等都十 分类似。 在使用过程中,一般都会将 Elasticsearch 和 Solr 这两个软件对比,然后进行选型。这两 个搜索引擎都是流行的,先进的的开源搜索引擎。它们都是围绕核心底层搜索库 - Lucene 构建的 - 但它们又是不同的。像所有东西一样,每个都有其优点和缺点:

image-20211028200142833

Elasticsearch Or Solr

Elasticsearch 和 Solr 都是开源搜索引擎,那么我们在使用时该如何选择呢?  Google 搜索趋势结果表明,与 Solr 相比, Elasticsearch 具有很大的吸引力,但这并不 意味着 Apache Solr 已经死亡。虽然有些人可能不这么认为,但 Solr 仍然是最受欢迎的 搜索引擎之一,拥有强大的社区和开源支持。  与 Solr 相比, Elasticsearch 易于安装且非常轻巧。此外,你可以在几分钟内安装并运行 Elasticsearch。但是,如果 Elasticsearch 管理不当,这种易于部署和使用可能会成为一个 问题。基于 JSON 的配置很简单,但如果要为文件中的每个配置指定注释,那么它不适 合您。总的来说,如果你的应用使用的是 JSON,那么 Elasticsearch 是一个更好的选择。 否则,请使用 Solr,因为它的 schema.xml 和 solrconfig.xml 都有很好的文档记录。  Solr 拥有更大,更成熟的用户,开发者和贡献者社区。 ES 虽拥有的规模较小但活跃的 用户社区以及不断增长的贡献者社区。 Solr 贡献者和提交者来自许多不同的组织,而 Elasticsearch 提交者来自单个公司。  Solr 更成熟,但 ES 增长迅速,更稳定。  Solr 是一个非常有据可查的产品,具有清晰的示例和 API 用例场景。 Elasticsearch 的 文档组织良好,但它缺乏好的示例和清晰的配置说明。 那么,到底是 Solr 还是 Elasticsearch? 有时很难找到明确的答案。无论您选择 Solr 还是 Elasticsearch,首先需要了解正确的用 例和未来需求。总结他们的每个属性。  由于易于使用, Elasticsearch 在新开发者中更受欢迎。一个下载和一个命令就可以启动 一切。  如果除了搜索文本之外还需要它来处理分析查询, Elasticsearch 是更好的选择  如果需要分布式索引,则需要选择 Elasticsearch。对于需要良好可伸缩性和以及性能分 布式环境, Elasticsearch 是更好的选择。  Elasticsearch 在开源日志管理用例中占据主导地位,许多组织在 Elasticsearch 中索引它 们的日志以使其可搜索。  如果你喜欢监控和指标,那么请使用 Elasticsearch,因为相对于 Solr, Elasticsearch 暴露 了更多的关键指标

Elasticsearch的适用场景

国外

(1)维基百科,启动以 Elasticsearch 为基础的核心搜索架构,类似百度百科,全文检索,高亮,搜索推荐 (2)The Guardian(国外新闻网站),类似搜狐新闻,用户行为日志(点击,浏览,收藏,评论)+社交网络数据(对某某新闻的相关看法),数据分析,给到每篇新闻文章的作者,让他知道他的文章的公众反馈(好,坏,热门,垃圾,鄙视,崇拜) (3)Stack Overflow(国外的程序异常讨论论坛),解决 Bug 问题的网站,编程人员交流的网站。IT问题,程序的报错,提交上去,有人会跟你讨论和回答,全文检索,搜索相关问题和答案,程序报错了,就会将报错信息粘贴到里面去,搜索有没有对应的答案 (4)GitHub(开源代码管理),2013 年初,抛弃了 Solr,采取 Elasticsearch 来做 PB 级的搜索。 “GitHub 使用 Elasticsearch 搜索 20TB 的数据,包括 13 亿文件和 1300 亿行代码”。 (5)电商网站,检索商品 (6)日志数据分析,logstash采集日志,ES进行复杂的数据分析(ELK技术,elasticsearch+logstash+kibana) (7)商品价格监控网站,用户设定某商品的价格阈值,当低于该阈值的时候,发送通知消息给用户,比如说订阅牙膏的监控,如果高露洁牙膏的家庭套装低于50块钱,就通知我,我就去买 (8)BI系统,商业智能,Business Intelligence。比如说有个大型商场集团,分析一下某某区域最近3年的用户消费金额的趋势以及用户群体的组成构成,产出相关的数张报表:**区,最近3年,每年消费金额呈现100%的增长,而且用户群体85%是高级白领,开一个新商场。ES执行数据分析和挖掘,Kibana进行数据可视化

国内

(9)国内:站内搜索(电商,招聘,门户,等等),IT系统搜索(OA,CRM,ERP,等等),数据分析(ES热门的一个使用场景)

 百度:目前广泛使用 Elasticsearch 作为文本数据分析,采集百度所有服务器上的各类指 标数据及用户自定义数据,通过对各种数据进行多维分析展示,辅助定位分析实例异常 或业务层面异常。目前覆盖百度内部 20 多个业务线(包括云分析、网盟、预测、文库、 直达号、钱包、 风控等),单集群最大 100 台机器, 200 个 ES 节点,每天导入 30TB+ 数据。  新浪:使用 Elasticsearch 分析处理 32 亿条实时日志。  阿里:使用 Elasticsearch 构建日志采集和分析体系。

Elasticsearch的特点

(1)可以作为一个大型分布式集群(数百台服务器)技术,处理PB级数据,服务大公司;也可以运行在单机上,服务小公司 (2)Elasticsearch不是什么新技术,主要是将全文检索、数据分析以及分布式技术,合并在了一起,才形成了独一无二的ES;lucene(全文检索),商用的数据分析软件(也是有的),分布式数据库(比如mycat) (3)对用户而言,是开箱即用的,非常简单,作为中小型的应用,直接3分钟部署一个ES,就可以作为生产环境的系统来使用了,数据量不大,操作不是太复杂 ,商用的数据分析软件(也是有的),分布式数据库(比如mycat) (3)对用户而言,是开箱即用的,非常简单,作为中小型的应用,直接3分钟部署一个ES,就可以作为生产环境的系统来使用了,数据量不大,操作不是太复杂 (4)数据库的功能面对很多领域是不够用的(事务,还有各种联机事务型的操作);还需要提供特殊的功能,比如全文检索,同义词处理,相关度排名,复杂数据分析,海量数据的近实时处理;Elasticsearch作为传统数据库的一个补充,提供了数据库所不不能提供的很多功能

关注
打赏
1638062488
查看更多评论
立即登录/注册

微信扫码登录

0.2365s