手机版
位置:筑能财经 > 资讯 >

【世界速看料】【ES三周年】通过Elasticsearch来搭建搜索引擎

来源:腾讯云 | 2023-02-21 20:19:51

前言

众所周知,Elasticsearch是一款基于Lucene库的开源的实时搜索和分析引擎,它不仅可以大规模的索引文档且允许外界能够搜索到这些文档,而且能够非常快速的对这些文档进行分析操作。尤其是在大数据领域里面的存储和搜索与分析的协作操作,而且Elasticsearch可以被Hadoop集成,虽然Elasticsearch是基于Lucene构建的,但是它的应用领域非常的宽泛,其他方向暂且不提,本文就来分享一下Elasticsearch的工作原理,以及通过Elasticsearch来搭建搜索引擎的大概流程。

什么是Elasticsearch?

Elasticsearch也简称为ES,其实就是一个实时搜索和分析引擎,它可以近乎实时的数据存储、检索与分析数据。ES是一个基于开源的可高扩展的分布式全文搜索引擎,它自身可扩展性非常好,可以扩展到能够处理PB级别的数据。ES是基于Lucene作为核心来实现所有搜索和索引的功能的,之所以这样做就是为了通过简单的RESTful API来隐藏Lucene的复杂性,进而让全文搜索成为一个简单的操作。


(资料图)

Lucene

在介绍Elasticsearch的工作原理之前,再来了解一下Lucene。Lucene也是一个开源的项目,它是由Doug Cutting开发基于Apache软件基金会4 jakarta项目组的一个子项目。Lucene是一个全文检索引擎工具包,它只是一个全文检索引擎的架构,主要提供完整的查询和搜索引擎,以及部分的文本分析引擎,但它不是一个完整的全文检索引擎。近几年非常的受欢迎,尤其是在Java信息检索程序库里的体现。Lucene与Elasticsearch的关系可以理解为:ElasticSearch是基于Lucene 做了进一步的封装和加强。

Elasticsearch的工作

上文介绍过Elasticsearch的核心是基于Lucene库,Lucene是一个基于Java 引擎用于优化文档存储的全文检索引擎工具包,它可以高效地实时搜索和分析与搜索项相匹配的文本项。选择使用Elasticsearch,不仅因为它提供的一个更为低层的Lucene引擎和简洁的REST API,而且非常好的可扩展性,以及支持插件和其他技术的集成。在使用Elasticsearch之前,需要搞懂它三个核心内容:索引、分片、类型。

1、索引(index)

在Elasticsearch中,一个索引表示一个拥有相似特征的文档集合。例如,可以由一个用户数据的索引构成,也可以由一个产品类目的索引,甚至还可以由一个订单信息的索引。一个索引是由一个名字来区分做标识(命名规则:必须都是小写英文字母),且需要对这个索引里面的文档进行搜索、索引、更新等操作的时候,都是根据该名字来进行操作的。

注意:在一个集群中,使用者可以创建任意的多个索引。

2、分片(shard)

分片,其实就是一个索引可以存储超过单个节点硬件限制的大量数据。例如,在一个拥有100亿文档的索引占了10TB的磁盘空间,而且任何一个节点可能没有这么大的磁盘空间来存储或单个节点处理搜索请求而响应太慢,通过使用Elasticsearch将索引划分为多片,这些片就叫做分片。当创建一个索引的时候,使用者可以指定想要的分片数量,每个分片本身就是一个功能完整并且独立的索引,而且该索引可以被放到集群中的任意节点上面。

3、类型(type)

类型其实就是在一个索引中,使用者可以定义的一种或者多种类型,一个类型是索引的一个逻辑分区或者分类,它的语义完全由使用者决定,一般会给具有一组相同字段的文档定义为一个类型。比如,运营一个技术博客社区,且将所有博客数据存储在一个索引里面,在这个索引中,可以为博客用户数据定义一个类型,再为博客数据定义另外一个类型,而且也可以为文章评论数据定义第三个类型,这些操作都是可以正常操作的。

示例

这里通过一个简单的例子来做Elasticsearch的使用介绍,上面介绍过Elasticsearch提供了一个非常简洁的REST API,使用者可以把文档写进Elasticsearch里面,它会自动构建索引,然后可以使用查询语句把这些文档返回。Elasticsearch其实也提供了SQL查询功能,但是局限性比较大,所以复杂的查询聚合必须要回到DSL中,但是DSL语法比较复杂,如下所示:

GET /_search{"query": {"bool": {"must" [{"match": { "title": "Search"}},{"match": { "content": "Elasticsearch"}},]}}}

再来做一个复杂一点的查询结果演示,具体如下所示:

GET /_search{"_shard": {"success": 4,"total":5,"failed":1},"query": {"bool": {"must" : [{"match": { "title": "Search"}},{"match": { "content": "Elasticsearch"}},],"filter" : [{"team": { "status": "publish"}},{"range": { "publish_time": {"gt" : "2023-02-14"}}},]}}}

上面的查询结果示例还是较为简单的,在实际开发中还有更复杂的查询,尤其是数据嵌套多层,这里就不在做结果演示了。因为还有好多本文没有介绍到,或者使用者还没有使用到的搜索技术,可以去Elasticsearch的官方文档中查找即可,这里就不再一一赘述。

Tips

1、其实,Elastic官方有很多优质的博文,但是大部分开发者因为它们是英文的原因而忽略了,其实不能这样做,因为Elastic官方的这些文章有很多关键的实现过程以及原理,图文并茂,虽然是英文但是认真去读会发现写的很棒,所以作为使用者一定要克服英文的障碍去认真阅读这些文章。

2、还有就是,腾讯云提供的Elasticsearch Service云产品非常的不错,它是基于开源引擎打造的云端全托管 ELK 服务,集成 X-Pack 特性、独有高性能自研内核、QQ 分词、集群巡检、一键升级等优势能力,引入极致性价比的腾讯自研星星海服务器,可以帮助用户轻松管理和运维集群,高效构建日志分析、运维监控、信息检索、数据分析等业务。所以腾讯云的Elasticsearch Service很值得去体验、学习和使用。

3、Elasticsearch其实也是基于其他产品来研发的,借鉴了很多比较好的设计思想,也集成了很多算法设计,虽然官方的文档在技术原理方面讨论的不太深,基本都是点到为止,但是使用者要想深入了解和学习,必须通过其他途径去深入。

拓展:Hadoop集成

最后再来了解一下Hadoop集成的好处,Hadoop集成最大的好处就是Elasticsearch通过构建Elasticsearch-Hadoop让数据存储以及查询变得很简单,主要就是通过映射Hadoop分离的输入数据,Spark的分区到ES的分片上解决分布式数据模型的问题,因为可以减少数据拷贝操作,大大提高性能,而且数据能够在同一台机器上,那是因为Elasticsearch-Hadoop让与Hadoop和Spark进行数据交互操作,这样防止了不必要的数据通过网络进行传输操作。

附录

Elasticsearch官网:https://www.elastic.co/cn/downloads/elasticsearch

最后

通过本文关于使用Elasticsearch来搭建搜索引擎的简单介绍,想必读者会有所收获,Elasticsearch 自从诞生以来,它应用的地方越来越广泛,特别是在大数据领域,功能也越来越强大,而且Elasticsearch成名很早,技术栈功能特点也很多,现在也很完善,基本上各种学习资料都有,但是要想系统学习就要多去实践操作,因为只停留在理论上只能是纸上谈兵,所以要借助理论知识培养系统思想,结合实际实践来提高实践能力,双管齐下才能真正掌握Elasticsearch的使用。由于现在越来越多的实际场景应用了Elasticsearch ,而且呈现剧增的趋势,Elasticsearch会越来越受欢迎,让我们一起期待Elasticsearch带来的新技术变革!

标签: Elasticsearch Service ElasticsearchService Hadoop

上一篇:

下一篇:

精彩放送

新闻资讯

  1. 外痔和内痔哪个危害大_外痔和内痔的区别
  1. 全球热讯:乐扣水杯质量怎么样_乐扣水杯
  1. 热门:返回地面75天后神舟十四号乘组航天员首次与公众见面
  1. 全球热推荐:人流物流加速回暖 “流通”大数据折射中国经济活力
  1. 【世界速看料】如何长高音钩针
  1. 新消息丨中华始祖神_中华始祖
  1. 【天天快播报】racing电动越野车_Radical赛车
  1. 每日精选:音飞储存(603066)周评:本周涨4.27%,主力资金合计净流出8172.83万元
  1. 今日看点:出行提示!2月21日起石家庄市这些营运线路有调整!
  1. 房贷还款后需要退一笔钱吗?贷款还完多久征信会显示结清?
  1. 公积金贷款买房后停了怎么办?公积金断交了会变成商贷吗?
  1. 把首套房卖了再买一套算二套房吗?全款买房后买房算二套房吗?
  1. 房贷已在还款换工作需要做啥?办房贷期间可以换工作吗?
  1. 房贷延期还需要每月还款吗?房贷延期还款是怎么个延期法?
  1. 建行房贷需要全部还款吗?建行的房贷还款日期是每月几号?
  1. 天天快看点丨长沙购房落户办理指南(条件+材料+流程)
  1. 当前关注:景顺长城景气优选一年正在发行 关注科技成长及部分核心资产机会
  1. 快消息!博菲电气02月17日主力资金大幅流入
  1. 当前关注:中行杯横店马拉松重启后报名截止时间
  1. 环球速看:今日光泽上瘾歌词_上瘾歌词
  1. 天天即时看!广州铭源检测技术有限公司
  1. 环球观焦点:JMeter笔记10 | JMeter检查点
  1. 每日信息:景顺长城徐喻军、曾理:新一轮科技产业周期 关注专精特新投资机会
  1. 在这座城发现美
  1. 当前焦点!FNAF:安全漏洞【186】
  1. 世界热推荐:冯明远卸任又一只基金的经理 下一步是减负还是离职
  1. A股突然跳水 这个板块却逆市上攻!基金看多做多 背后的逻辑揭秘
  1. 今日观点!王冠群 | 团队打造系列文章1:发现比培养更重要
  1. 讯息:透视138只个人养老金基金产品:规模上升空间大 可从四大维度优化制度建设
  1. 全面注册制下打新“闭眼赚钱”或成历史 公募投研要“更往前看”
  1. 柳钢股份:融资净偿还333.37万元,融资余额1.29亿元(02-16)
  1. 全球热讯:美联储官员重提升息50基点话题 暗示可能加快加息步伐
  1. 莅临的使用_莅临的用法
  1. 环球讯息:休闲衬衫搭配什么下装 休闲衬衫搭配哪些下装
  1. 蝴蝶简笔画图片大全及画法步骤_蝴蝶简笔画图片大全及
  1. 世界要闻:需求前置,降价频频,2023年电动车燃油车一起“跌跌不休”?
  1. 俄乌冲突下乌克兰掀起反腐浪潮具体详细内容是什么
  1. 世界聚焦:贵州酒店集团会同多彩贵州文投集团、省科技创新中心赴荔波县考察调研民宿产业发展
  1. 天天热消息:教育部体育卫生与艺术教育司原司长等4名厅官被逮捕
  1. 房贷还清了还能抵个税吗?个税专项附加扣除房贷还清了还能扣吗?
  1. 房贷大额还款需要什么手续费吗?房贷等额本息提前大额还款划算吗?
  1. 个人住房贷款还款证明需要哪些材料?房贷还清后银行会给什么证明?
  1. 热门:海南椰岛集团法定代表人变更 王晓晴接替冯彪
  1. 深圳公租房能住一辈子吗?深圳公租房父子关系可以申请两房吗?
  1. 银行房贷还款完需要开证明吗?还清房贷后银行多久会开具房贷结清证明?
  1. 房屋转让合同有法律效力吗?房屋转让合同怎样才生效?
  1. “墙上的性感女人”,和梦露齐名的她去世了
  1. 父母高度近视1岁婴儿近视600度事件简单介绍
  1. 当前热门:宝马131一箱油能行驶多少公里
  1. 每日时讯!秦伐韩文言文翻译及阅读答案_秦伐韩
  1. 全球资讯:暑假在家快速逆袭冷白皮,开学轻松白成一道光。
  1. egf是什么意思
  1. 动态:证券ETF基金(512900)强势上涨1.30%,中金公司涨2.41%
  1. 全球热议:香港科技ETF(159747)早盘冲高涨2.14%,腾讯控股、网易-S涨超2%
  1. 世界看热讯:indexof是什么意思
  1. 焦点快看:传音Tecno POP 7 Pro将于2月16日登陆印度,搭载Helio A22处理器
  1. 最资讯丨再融资新规落地三年 公募参与定增热情上升
  1. 公募基金摩拳擦掌 掀起新一轮招聘热
  1. 你方唱罢我登场 被遗忘的传媒基金热起来了
  1. 宝宝金水有副作用_宝宝金水有副作用吗
  1. 公私募发行回暖 多路资金陆续进场
  1. 360安全卫士怎么修复IE浏览器?-系统之家
  1. 天天新动态:中润资源修订重大资产置换预案 索赔案已有股民获一审胜诉
  1. 今日热文:总裁和董事长的区别的区别_总裁和董事长的区别
  1. 天天热讯:量化策略或迎发力窗口 多家百亿元级量化私募部分产品“开门迎客”
  1. 中顺洁柔补产能自救 10万吨产能能否把自己撬出“泥潭”
  1. 扬州文汇阁四库全书残叶歌
  1. 苹果“先买后付”呼之欲出 内部测试范围扩大到数千人
  1. 当前热讯:诺基亚x700参数_诺基亚x7 00
  1. 环球头条:正月十九是什么日子:丘处机诞辰
  1. 焦点快看:美国WTI原油周三收跌0.6%
  1. 即时焦点:浪漫3D电子相册 V4.0 官方版_浪漫3D电子相册 V4.0 官方版功能简介
  1. 【新视野】360软件库叫什么名字_360软件库
  1. 陈羽凡吸毒门的消息介绍_公司第一时间出来辟谣
  1. 每日热闻!两条车道的高速速度规定_高速速度规定
  1. 【世界新视野】搞笑欠揍的网名笑死人 三个字的游戏名字
  1. 环球热点评!提高品质做优品牌 哈尔滨市老字号企业协会成立
  1. 世界快资讯:为什么2021金牛百年难遇
  1. 周冠宇,优质体育偶像的品牌效应
  1. 学前教育托育条例颁布后首个学期 有这些新进展
  1. 【世界独家】核废水有什么处理方法 核废水标准处理方式分享
  1. 胭脂大结局 电视剧胭脂的大结局是什么
  1. 每日速看!中概互联是美股还是港股
  1. 每日看点![快讯]宜宾纸业:临2023-008宜宾纸业股份有限公司关于相关主体出具特定期间不减持公司股份的承诺
  1. 【焦点热闻】百万7座豪华大SUV怎么选?无外乎在这几款里挑(下)
  1. 环球微资讯!分数的乘除法怎么算 分数的乘除法算法
  1. 微资讯!美称中方散布虚假信息 外交部:应质问美官员是否核查“气球”事件
  1. 婚后买房房产证一个人名字可以独自出售吗?房产证写谁的名字最好?
  1. 房贷合同不见了可以重新补办吗?一个人买房子可以按揭吗?
  1. 房贷共同还款人需要本人都去吗?房贷共同还款人可以有几个?
  1. 房贷还款需要每个月都还么?房贷还款是自动扣款还是自己还款?
  1. 房贷改还款方式需要查征信吗?房贷转换成LPR后是当月生效吗?
  1. 房产证上写的面积是什么面积?农村房产证面积少写了怎么办?
  1. 今日要闻!迎着朝阳“巾帼”初绽芬芳吐蕊扬帆启航
  1. 今日最新!银行卡没激活多久无效
  1. 天天速读:龙凤呈祥香烟价格表大全 2022龙凤呈祥多少钱一包
  1. 焦点快报!上海:到2025年初步建成世界级邮轮制造总装基地
  1. 观察:男子申请返还27年前被扣黄金遭拒 烟台公安责令栖霞公安重新决定
  1. 全球今头条!召唤的同义词|近义词|反义词|字词解析
  1. 全球微动态丨再融资新规三年 公募参与定增超千亿