热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

一网打尽Elasticsearch的优点,使用场景,全文检索,近实时等知识点

在全文搜索领域,Elasticsearch占据了大部分的江山,这也导致了它的市值,居高不下。今天我抽个时间再谈一谈Elasticsearch的特点,使用场景,开源产品等内容,希望能

在全文搜索领域,Elasticsearch 占据了大部分的江山,这也导致了它的市值,居高不下。今天我抽个时间再谈一谈 Elasticsearch 的特点,使用场景,开源产品等内容,希望能够方便大家理解!

所谓的全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。这个过程类似于通过字典中的检索字表查字的过程。

一网打尽Elasticsearch的优点,使用场景,全文检索,近实时等知识点
BAT架构师带你学 Elasticsearch

根据这个全文检索的解释,我们就可以猜测出一些关于它的使用场景。

  • 搜索领域: 百度、谷歌,全文检索,高亮,搜索推荐等。
  • 内容网站: 用户行为日志(点击、浏览、收藏、评论) + 社交网络数据,数据分析(将公众对文章的反馈提交至文章作者),包括网站内容搜索等。
  • Stack Overflow(IT技术论坛): 全文检索,搜索相关问题和答案。
  • GitHub(开源代码管理), 搜索管理其托管的上千亿行代码。
  • 日志数据分析: ELK技术栈(Elasticsearch + Logstash + Kibana)对日志数据进行采集和分析。
  • 商品价格监控网站: 用户设定某商品的价格阈值,当价格低于该阈值时,向用户推送降价消息。
  • BI系统(Business Intelligence, 商业智能): 分析某区域最近 3 年的用户消费额的趋势、用户群体的组成结构等。
  • 其他应用: 电商、招聘、门户等网站的内部搜索服务,IT系统(OA、CRM、ERP等)的内部搜索服务、数据分析等。

根据这些使用场景,Elastic 开发出了相当多的收费和免费的产品,比如:Beats 是一个代理,将不同类型的数据发送到 Elasticsearch 中;Shield 提供基于角色的访问控制与审计,加密通信、认证保护整个 ES 的数据,为 ES 带来企业级的安全性;Watcher 是 ES 的警报和通知工具,检测 ES 的状态,在异常发生时进行提醒;Marvel: 是 ES 的管理和监控工具,检测 ES 集群的索引和节点的活动。

根据这些产品,可以看出,多数都是收费的。虽然 Elasticsearch 很好用,但是它每年会爆发出非常多的安全问题。原因是它的安全模块是收费的!

但是,这并不影响人们学习和使用 Elasticsearch,因为它具备了太多的优点。虽然它的安全模块收费,但是我们也可以完全自己来实现它的安全保护,防止数据泄露。

ES 的优点,总结了下面 5 条,供大家参考:

  • 横向可扩展性: 作为大型分布式集群,很容易就能扩展新的服务器到ES集群中;也可运行在单机上作为轻量级搜索引擎使用。
  • 更丰富的功能: 与传统关系型数据库相比,ES提供了全文检索、同义词处理、相关度排名、复杂数据分析、海量数据的近实时处理等功能。
  • 分片机制提供更好地分布性: 同一个索引被分为多个分片(Shard),利用分而治之的思想提升处理效率。
  • 高可用: 提供副本(Replica)机制,一个分片可以设置多个副本,即使在某些服务器宕机后,集群仍能正常工作。
  • 开箱即用: 提供简单易用的 API,服务的搭建、部署和使用都很容易操作。
一网打尽Elasticsearch的优点,使用场景,全文检索,近实时等知识点
Redis、HBase、ElasticSearch之间的优缺点比较

ES 的这些优点导致了,在全文检索、结构化检索、数据分析、海量数据的近实时处理等领域具有巨大的优势。

下面我给大家说一说,全文检索、结构化检索、数据分析三者的区别吧。

  • 全文检索: 搜索商品名称包含”编程思想”的商品: select * from products where product_name like “%编程思想%”;
  • 结构化检索: 搜索商品分类为”计算机科学”的所有商品: select * from products where category_id=’计算机科学’;
  • 数据分析: 分析每一种商品分类下有多少件商品: select category_id, count(*) from products group by category_id;

这些 Elasticsearch 都可以做,而且性能极其高效,因为它能提供近实时的搜索能力。

这里需要注意的是,非近实时、实时、近实时三者之间的关系与区别。

  • 非近实时: 检索x个数据要花费很长时间(这就不是近实时,而是离线批处理, batch-processing)。
  • 实时: 数据的处理与响应都是立即呈现的,几乎没有间隔,这在大数据应用场景下是很难达到的要求。
  • 近实时(near real-time, NRT): 对海量数据进行搜索和分析的响应耗时控制在秒级以内,方可称为近实时。

以上,希望能够帮助到每一位读者!

一网打尽Elasticsearch的优点,使用场景,全文检索,近实时等知识点

: » 一网打尽Elasticsearch的优点,使用场景,全文检索,近实时等知识点


推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 本文介绍了在使用TortoiseSVN的Repo-browser浏览SVN时出现的错误,以及解决方法。文章提到了卸载当前版本、安装较低版本、使用更下一层的路径等解决方案。同时指出该问题可能是客户端与SVN服务端不匹配造成的,且服务端无法升级更高的SVN版本。 ... [详细]
author-avatar
c33454059
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有