众所周知,Elasticsearch是一款基于Lucene库的开源的实时搜索和分析引擎,它不仅可以大规模的索引文档且允许外界能够搜索到这些文档,而且能够非常快速的对这些文档进行分析操作。尤其是在大数据领域里面的存储和搜索与分析的协作操作,而且Elasticsearch可以被Hadoop集成,虽然Elasticsearch是基于Lucene构建的,但是它的应用领域非常的宽泛,其他方向暂且不提,本文就来分享一下Elasticsearch的工作原理,以及通过Elasticsearch来搭建搜索引擎的大概流程。
Elasticsearch也简称为ES,其实就是一个实时搜索和分析引擎,它可以近乎实时的数据存储、检索与分析数据。ES是一个基于开源的可高扩展的分布式全文搜索引擎,它自身可扩展性非常好,可以扩展到能够处理PB级别的数据。ES是基于Lucene作为核心来实现所有搜索和索引的功能的,之所以这样做就是为了通过简单的RESTful API来隐藏Lucene的复杂性,进而让全文搜索成为一个简单的操作。
在介绍Elasticsearch的工作原理之前,再来了解一下Lucene。Lucene也是一个开源的项目,它是由Doug Cutting开发基于Apache软件基金会4 jakarta项目组的一个子项目。Lucene是一个全文检索引擎工具包,它只是一个全文检索引擎的架构,主要提供完整的查询和搜索引擎,以及部分的文本分析引擎,但它不是一个完整的全文检索引擎。近几年非常的受欢迎,尤其是在Java信息检索程序库里的体现。Lucene与Elasticsearch的关系可以理解为:ElasticSearch是基于Lucene 做了进一步的封装和加强。
(资料图)
上文介绍过Elasticsearch的核心是基于Lucene库,Lucene是一个基于Java 引擎用于优化文档存储的全文检索引擎工具包,它可以高效地实时搜索和分析与搜索项相匹配的文本项。选择使用Elasticsearch,不仅因为它提供的一个更为低层的Lucene引擎和简洁的REST API,而且非常好的可扩展性,以及支持插件和其他技术的集成。在使用Elasticsearch之前,需要搞懂它三个核心内容:索引、分片、类型。
在Elasticsearch中,一个索引表示一个拥有相似特征的文档集合。例如,可以由一个用户数据的索引构成,也可以由一个产品类目的索引,甚至还可以由一个订单信息的索引。一个索引是由一个名字来区分做标识(命名规则:必须都是小写英文字母),且需要对这个索引里面的文档进行搜索、索引、更新等操作的时候,都是根据该名字来进行操作的。
注意:在一个集群中,使用者可以创建任意的多个索引。
分片,其实就是一个索引可以存储超过单个节点硬件限制的大量数据。例如,在一个拥有100亿文档的索引占了10TB的磁盘空间,而且任何一个节点可能没有这么大的磁盘空间来存储或单个节点处理搜索请求而响应太慢,通过使用Elasticsearch将索引划分为多片,这些片就叫做分片。当创建一个索引的时候,使用者可以指定想要的分片数量,每个分片本身就是一个功能完整并且独立的索引,而且该索引可以被放到集群中的任意节点上面。
类型其实就是在一个索引中,使用者可以定义的一种或者多种类型,一个类型是索引的一个逻辑分区或者分类,它的语义完全由使用者决定,一般会给具有一组相同字段的文档定义为一个类型。比如,运营一个技术博客社区,且将所有博客数据存储在一个索引里面,在这个索引中,可以为博客用户数据定义一个类型,再为博客数据定义另外一个类型,而且也可以为文章评论数据定义第三个类型,这些操作都是可以正常操作的。
这里通过一个简单的例子来做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的官方文档中查找即可,这里就不再一一赘述。
1、其实,Elastic官方有很多优质的博文,但是大部分开发者因为它们是英文的原因而忽略了,其实不能这样做,因为Elastic官方的这些文章有很多关键的实现过程以及原理,图文并茂,虽然是英文但是认真去读会发现写的很棒,所以作为使用者一定要克服英文的障碍去认真阅读这些文章。
2、还有就是,腾讯云提供的Elasticsearch Service云产品非常的不错,它是基于开源引擎打造的云端全托管 ELK 服务,集成 X-Pack 特性、独有高性能自研内核、QQ 分词、集群巡检、一键升级等优势能力,引入极致性价比的腾讯自研星星海服务器,可以帮助用户轻松管理和运维集群,高效构建日志分析、运维监控、信息检索、数据分析等业务。所以腾讯云的Elasticsearch Service很值得去体验、学习和使用。
3、Elasticsearch其实也是基于其他产品来研发的,借鉴了很多比较好的设计思想,也集成了很多算法设计,虽然官方的文档在技术原理方面讨论的不太深,基本都是点到为止,但是使用者要想深入了解和学习,必须通过其他途径去深入。
最后再来了解一下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
Elasticsearch也简称为ES,其实就是一个实时搜索和分析引擎,它可以近乎实时的数据存储、检索与分析数据。ES是一个基于开源的可高扩展的分布式
有下列构成要素:1 旅游业相关法律法规不健全。2 旅游合同多为格式合同且普遍存在霸王条款。3 旅行社违背诚实信用原则。4 部分游客行为草率。
宁采臣为什么会撞鬼?因为古人宁去“荒坟”,也不去“古庙”有许多的仙侠类影视剧会出现这样一个片段,那就是一个书生在上京赶考的过程中,...
北京当前空气质量已达重度污染!预计明起有所好转,重度污染,肺病,心脏病,户外运动,症状
好Q好可爱!“福州金鱼”IP火了!2月17日19时,“与世界共鱼悦”2023年福州金鱼文化节暨“福州金鱼”IP发布会活动,在闽江之心海丝广场举行...
1、早餐:莲子薏米粥(大米、莲子、薏米),芝麻酱卷(莲藕粉,芝麻酱),蒸蛋,黄瓜拌绿豆芽(绿豆芽、黄瓜、陈醋)。加餐:银耳红枣汤(银耳、红枣
岐山县气象台发布大风蓝色预警【Ⅳ级 一般】【2023-02-17】
2月17日,阿坝州十三届人大常委会第九次会议通过阿坝州人民代表大会常务委员会任免名单。
大火还蔓延到当地的一个垃圾中心,垃圾焚烧造成的黑烟在空中翻滚,消防部门提醒民众关闭门窗,避免有害气体损害
中新网2月17日电综合报道,美国劳工统计局16日发布的报告显示,衡量批发价格水平的生产者价格指数(PPI)1月环比上涨0 7%,创下2022年6月以来的最大涨
17日,杭州市西湖区人民政府与阿里云计算有限公司(以下简称“阿里云”)签订全面战略合作协议。双方将以云计算为核心,共同打造数字产业高品...
1、将买来的带鱼解冻,在室温下放置半小时左右,然后挖出带鱼的肚子,用剪刀从中间切开带鱼的肚子,挖出内脏,翻面和鳍,然后用
大商所生猪期货主力合约下跌4 12%,报21530 0元 吨。本文到此结束,希望对大家有所帮助。
截至2023年2月16日收盘,上能电气(300827)报收于67 74元,上涨0 44%,换手率11 04%,成交量11 9万手,成交额8 07亿元。
德赛西威2月16日发布投资者关系活动记录表,公司于2023年2月15日接受6家机构单位调研,机构类型为QFII、其他、海外机构、证券公司、阳光私募机
上一篇文章:2023年,上海的老破小还值得买吗?我们提到,关于2023年上海老破小是否还值得买的建议。在供应量如此大的前提下,老破小在未来都
2023年春运落幕江苏公铁水空发送旅客5896万人次
1、陶瓷密度天平也叫陶瓷比重天平和陶瓷密度测试仪。2、首先我们来看看这种陶瓷会不会吸水。如果不吸水,测量方法就简单了,两
为进一步深化国家食品安全示范城市创建,营造共创共建共享的良好氛围,2023年2月16日,绿东村街道电缆社区开展了食品安全宣传活动。活动中,社
本文转自:新民晚报本报讯(记者杨玉红)今天上午,国家统计局发布2023年1月份商品住宅销售价格变动情况统计数据,价格环比上涨城市个数增加,
新疆生产建设兵团2022年棉花产量创历史新高---2月16日,新疆生产建设兵团召开2022年兵团经济运行情况新闻发布会,发布2022年兵团经济运行数据
老庄的主要思想,1、道法自然观;2、主张雕琢复朴的人性复归,纠编人性异化倾向;3、主张至公精神,用以扼制人们过分的权利欲和占有欲;4、崇
广东今年将改造300个县城老旧小区
1、珏jué双玉,二玉相合为一珏珏,二玉相合为一珏。2、――《说文》翁伯以礼玉十珏以授仙童。3、――《太平广记》引
怎么看淘宝人生账单,怎么看淘宝人生账单,相信很多朋友们也遇到过这种类似的问题,那么对于这类问题如何解决呢?下面就把解决这种问题的方法给
湘东讯(黄雨欣)近期,东桥镇早谋划、早部署、早行动,有条不紊推进春耕备耕工作。该镇持续推进高标准农田建设项目,扎实开展撂荒地摸排治理
1、如何使用电脑中的一键还原功能?大多数情况下,比较听话的专业人士更喜欢用GHOST来还原。对于没用过GHOST的一般人来说,比较难,操作起来容
1、不是这首诗叫做想从前我们俩分手这是诗的最后两句想从前我们俩分手,默默无言地流着泪,预感到多年的隔离,我们忍不住心碎;你的脸冰凉、发
股票是一种由股份制有限公司签发的用以证明股东所持股份的凭证,它表明股票的持有者对股份公司的部分资本拥有所有权。股票包含有
康熙字典10画的字有哪些啊唉埃娭挨爱砨砹俺匎案桉氨胺豻陰盎敖哵垻捌秡笆粑
Copyright © 2015-2022 中公服装网版权所有 备案号:沪ICP备2022005074号-18 联系邮箱:5855973@qq.com