午夜激情网址,精品久久久久久777米琪桃花,性生活TV日韩,骚货自慰久草

首頁(yè) >頭條 > 正文

環(huán)球最資訊丨【ES三周年】通過(guò)Elasticsearch來(lái)搭建搜索引擎

2023-02-20 09:00:34來(lái)源:騰訊云

前言

眾所周知,Elasticsearch是一款基于Lucene庫(kù)的開(kāi)源的實(shí)時(shí)搜索和分析引擎,它不僅可以大規(guī)模的索引文檔且允許外界能夠搜索到這些文檔,而且能夠非常快速的對(duì)這些文檔進(jìn)行分析操作。尤其是在大數(shù)據(jù)領(lǐng)域里面的存儲(chǔ)和搜索與分析的協(xié)作操作,而且Elasticsearch可以被Hadoop集成,雖然Elasticsearch是基于Lucene構(gòu)建的,但是它的應(yīng)用領(lǐng)域非常的寬泛,其他方向暫且不提,本文就來(lái)分享一下Elasticsearch的工作原理,以及通過(guò)Elasticsearch來(lái)搭建搜索引擎的大概流程。


(資料圖片僅供參考)

什么是Elasticsearch?

Elasticsearch也簡(jiǎn)稱(chēng)為ES,其實(shí)就是一個(gè)實(shí)時(shí)搜索和分析引擎,它可以近乎實(shí)時(shí)的數(shù)據(jù)存儲(chǔ)、檢索與分析數(shù)據(jù)。ES是一個(gè)基于開(kāi)源的可高擴(kuò)展的分布式全文搜索引擎,它自身可擴(kuò)展性非常好,可以擴(kuò)展到能夠處理PB級(jí)別的數(shù)據(jù)。ES是基于Lucene作為核心來(lái)實(shí)現(xiàn)所有搜索和索引的功能的,之所以這樣做就是為了通過(guò)簡(jiǎn)單的RESTful API來(lái)隱藏Lucene的復(fù)雜性,進(jìn)而讓全文搜索成為一個(gè)簡(jiǎn)單的操作。

Lucene

在介紹Elasticsearch的工作原理之前,再來(lái)了解一下Lucene。Lucene也是一個(gè)開(kāi)源的項(xiàng)目,它是由Doug Cutting開(kāi)發(fā)基于Apache軟件基金會(huì)4 jakarta項(xiàng)目組的一個(gè)子項(xiàng)目。Lucene是一個(gè)全文檢索引擎工具包,它只是一個(gè)全文檢索引擎的架構(gòu),主要提供完整的查詢和搜索引擎,以及部分的文本分析引擎,但它不是一個(gè)完整的全文檢索引擎。近幾年非常的受歡迎,尤其是在Java信息檢索程序庫(kù)里的體現(xiàn)。Lucene與Elasticsearch的關(guān)系可以理解為:ElasticSearch是基于Lucene 做了進(jìn)一步的封裝和加強(qiáng)。

Elasticsearch的工作

上文介紹過(guò)Elasticsearch的核心是基于Lucene庫(kù),Lucene是一個(gè)基于Java 引擎用于優(yōu)化文檔存儲(chǔ)的全文檢索引擎工具包,它可以高效地實(shí)時(shí)搜索和分析與搜索項(xiàng)相匹配的文本項(xiàng)。選擇使用Elasticsearch,不僅因?yàn)樗峁┑囊粋€(gè)更為低層的Lucene引擎和簡(jiǎn)潔的REST API,而且非常好的可擴(kuò)展性,以及支持插件和其他技術(shù)的集成。在使用Elasticsearch之前,需要搞懂它三個(gè)核心內(nèi)容:索引、分片、類(lèi)型。

1、索引(index)

在Elasticsearch中,一個(gè)索引表示一個(gè)擁有相似特征的文檔集合。例如,可以由一個(gè)用戶數(shù)據(jù)的索引構(gòu)成,也可以由一個(gè)產(chǎn)品類(lèi)目的索引,甚至還可以由一個(gè)訂單信息的索引。一個(gè)索引是由一個(gè)名字來(lái)區(qū)分做標(biāo)識(shí)(命名規(guī)則:必須都是小寫(xiě)英文字母),且需要對(duì)這個(gè)索引里面的文檔進(jìn)行搜索、索引、更新等操作的時(shí)候,都是根據(jù)該名字來(lái)進(jìn)行操作的。

注意:在一個(gè)集群中,使用者可以創(chuàng)建任意的多個(gè)索引。

2、分片(shard)

分片,其實(shí)就是一個(gè)索引可以存儲(chǔ)超過(guò)單個(gè)節(jié)點(diǎn)硬件限制的大量數(shù)據(jù)。例如,在一個(gè)擁有100億文檔的索引占了10TB的磁盤(pán)空間,而且任何一個(gè)節(jié)點(diǎn)可能沒(méi)有這么大的磁盤(pán)空間來(lái)存儲(chǔ)或單個(gè)節(jié)點(diǎn)處理搜索請(qǐng)求而響應(yīng)太慢,通過(guò)使用Elasticsearch將索引劃分為多片,這些片就叫做分片。當(dāng)創(chuàng)建一個(gè)索引的時(shí)候,使用者可以指定想要的分片數(shù)量,每個(gè)分片本身就是一個(gè)功能完整并且獨(dú)立的索引,而且該索引可以被放到集群中的任意節(jié)點(diǎn)上面。

3、類(lèi)型(type)

類(lèi)型其實(shí)就是在一個(gè)索引中,使用者可以定義的一種或者多種類(lèi)型,一個(gè)類(lèi)型是索引的一個(gè)邏輯分區(qū)或者分類(lèi),它的語(yǔ)義完全由使用者決定,一般會(huì)給具有一組相同字段的文檔定義為一個(gè)類(lèi)型。比如,運(yùn)營(yíng)一個(gè)技術(shù)博客社區(qū),且將所有博客數(shù)據(jù)存儲(chǔ)在一個(gè)索引里面,在這個(gè)索引中,可以為博客用戶數(shù)據(jù)定義一個(gè)類(lèi)型,再為博客數(shù)據(jù)定義另外一個(gè)類(lèi)型,而且也可以為文章評(píng)論數(shù)據(jù)定義第三個(gè)類(lèi)型,這些操作都是可以正常操作的。

示例

這里通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)做Elasticsearch的使用介紹,上面介紹過(guò)Elasticsearch提供了一個(gè)非常簡(jiǎn)潔的REST API,使用者可以把文檔寫(xiě)進(jìn)Elasticsearch里面,它會(huì)自動(dòng)構(gòu)建索引,然后可以使用查詢語(yǔ)句把這些文檔返回。Elasticsearch其實(shí)也提供了SQL查詢功能,但是局限性比較大,所以復(fù)雜的查詢聚合必須要回到DSL中,但是DSL語(yǔ)法比較復(fù)雜,如下所示:

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

再來(lái)做一個(gè)復(fù)雜一點(diǎn)的查詢結(jié)果演示,具體如下所示:

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"}}},]}}}

上面的查詢結(jié)果示例還是較為簡(jiǎn)單的,在實(shí)際開(kāi)發(fā)中還有更復(fù)雜的查詢,尤其是數(shù)據(jù)嵌套多層,這里就不在做結(jié)果演示了。因?yàn)檫€有好多本文沒(méi)有介紹到,或者使用者還沒(méi)有使用到的搜索技術(shù),可以去Elasticsearch的官方文檔中查找即可,這里就不再一一贅述。

Tips

1、其實(shí),Elastic官方有很多優(yōu)質(zhì)的博文,但是大部分開(kāi)發(fā)者因?yàn)樗鼈兪怯⑽牡脑蚨雎粤?,其?shí)不能這樣做,因?yàn)镋lastic官方的這些文章有很多關(guān)鍵的實(shí)現(xiàn)過(guò)程以及原理,圖文并茂,雖然是英文但是認(rèn)真去讀會(huì)發(fā)現(xiàn)寫(xiě)的很棒,所以作為使用者一定要克服英文的障礙去認(rèn)真閱讀這些文章。

2、還有就是,騰訊云提供的Elasticsearch Service云產(chǎn)品非常的不錯(cuò),它是基于開(kāi)源引擎打造的云端全托管 ELK 服務(wù),集成 X-Pack 特性、獨(dú)有高性能自研內(nèi)核、QQ 分詞、集群巡檢、一鍵升級(jí)等優(yōu)勢(shì)能力,引入極致性價(jià)比的騰訊自研星星海服務(wù)器,可以幫助用戶輕松管理和運(yùn)維集群,高效構(gòu)建日志分析、運(yùn)維監(jiān)控、信息檢索、數(shù)據(jù)分析等業(yè)務(wù)。所以騰訊云的Elasticsearch Service很值得去體驗(yàn)、學(xué)習(xí)和使用。

3、Elasticsearch其實(shí)也是基于其他產(chǎn)品來(lái)研發(fā)的,借鑒了很多比較好的設(shè)計(jì)思想,也集成了很多算法設(shè)計(jì),雖然官方的文檔在技術(shù)原理方面討論的不太深,基本都是點(diǎn)到為止,但是使用者要想深入了解和學(xué)習(xí),必須通過(guò)其他途徑去深入。

拓展:Hadoop集成

最后再來(lái)了解一下Hadoop集成的好處,Hadoop集成最大的好處就是Elasticsearch通過(guò)構(gòu)建Elasticsearch-Hadoop讓數(shù)據(jù)存儲(chǔ)以及查詢變得很簡(jiǎn)單,主要就是通過(guò)映射Hadoop分離的輸入數(shù)據(jù),Spark的分區(qū)到ES的分片上解決分布式數(shù)據(jù)模型的問(wèn)題,因?yàn)榭梢詼p少數(shù)據(jù)拷貝操作,大大提高性能,而且數(shù)據(jù)能夠在同一臺(tái)機(jī)器上,那是因?yàn)镋lasticsearch-Hadoop讓與Hadoop和Spark進(jìn)行數(shù)據(jù)交互操作,這樣防止了不必要的數(shù)據(jù)通過(guò)網(wǎng)絡(luò)進(jìn)行傳輸操作。

附錄

Elasticsearch官網(wǎng):https://www.elastic.co/cn/downloads/elasticsearch

最后

通過(guò)本文關(guān)于使用Elasticsearch來(lái)搭建搜索引擎的簡(jiǎn)單介紹,想必讀者會(huì)有所收獲,Elasticsearch 自從誕生以來(lái),它應(yīng)用的地方越來(lái)越廣泛,特別是在大數(shù)據(jù)領(lǐng)域,功能也越來(lái)越強(qiáng)大,而且Elasticsearch成名很早,技術(shù)棧功能特點(diǎn)也很多,現(xiàn)在也很完善,基本上各種學(xué)習(xí)資料都有,但是要想系統(tǒng)學(xué)習(xí)就要多去實(shí)踐操作,因?yàn)橹煌A粼诶碚撋现荒苁羌埳险劚?,所以要借助理論知識(shí)培養(yǎng)系統(tǒng)思想,結(jié)合實(shí)際實(shí)踐來(lái)提高實(shí)踐能力,雙管齊下才能真正掌握Elasticsearch的使用。由于現(xiàn)在越來(lái)越多的實(shí)際場(chǎng)景應(yīng)用了Elasticsearch ,而且呈現(xiàn)劇增的趨勢(shì),Elasticsearch會(huì)越來(lái)越受歡迎,讓我們一起期待Elasticsearch帶來(lái)的新技術(shù)變革!

責(zé)任編輯:

標(biāo)簽: Elasticsearch Service ElasticsearchService Hadoop

免責(zé)聲明

頭條新聞

推薦內(nèi)容

美女扣逼视频| 日韩AV三级精品| 按摩熟女96MAV| 久久久久粗大中文字幕| 3级黄色片| 一本久道网站| 亚洲韩日国产无码成人| 欧美 二区 熟女| 亚洲TP视频| 久久内射视频| 无码人妻丰满熟妇六十| 天天干夜夜享受| 国产日韩国产厕所在线| 欧美亚洲精品二区三区| 熟妇色片| 91精品国产欧美一区二区| 天堂AV无码在线播放| 性天堂av系列| 777亚洲欧美| 成人欧美日韩一区二区三区| 亚洲人妻诱惑无码AV| 欧美在线色图| 玖热无码| 久久久久久免费视频| 丁香五月激情在线观看| 国产超碰av| 99国产一区二区| 中文字幕无码视屏| 久久丁香综合五月| 亚洲色图 国产区| 久久不卡视频| 久久精品30| 亚洲综合国产精品第一页| 天天操夜夜吃| 亚洲精品第一国产综合亚av| 成人射精高清无码| 四虎影院免费永久看| 亚洲AV成熟妇女| 先锋资源av网| 看美女一级黄色影视| 黄色三级带|