午夜激情网址,国产精品黄M.M视频,Aⅴ86干,天天狠狠综合爱

首頁 >頭條 > 正文

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

2023-02-20 09:00:34來源:騰訊云

前言

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


(資料圖片僅供參考)

什么是Elasticsearch?

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

Lucene

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

Elasticsearch的工作

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

1、索引(index)

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

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

2、分片(shard)

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

3、類型(type)

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

示例

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

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

再來做一個復雜一點的查詢結(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é)果示例還是較為簡單的,在實際開發(fā)中還有更復雜的查詢,尤其是數(shù)據(jù)嵌套多層,這里就不在做結(jié)果演示了。因為還有好多本文沒有介紹到,或者使用者還沒有使用到的搜索技術(shù),可以去Elasticsearch的官方文檔中查找即可,這里就不再一一贅述。

Tips

1、其實,Elastic官方有很多優(yōu)質(zhì)的博文,但是大部分開發(fā)者因為它們是英文的原因而忽略了,其實不能這樣做,因為Elastic官方的這些文章有很多關(guān)鍵的實現(xiàn)過程以及原理,圖文并茂,雖然是英文但是認真去讀會發(fā)現(xiàn)寫的很棒,所以作為使用者一定要克服英文的障礙去認真閱讀這些文章。

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

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

拓展:Hadoop集成

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

附錄

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

最后

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

責任編輯:

標簽: Elasticsearch Service ElasticsearchService Hadoop

免責聲明

頭條新聞

推薦內(nèi)容

亚洲另类第一区| 群交中文免费| 亚洲巨小视频在线观看| 亚洲日韩免费在线看| 91大量国产熟女| 欧美老人巨大xxxx做受| 免费二级片视频| 亚洲国产91色在线| 亚洲综合精选| 99精品视频在线观看| 盗摄一区二区| 亚洲产国偷v产偷v自拍色戒| www.无码精品| 精品国产乱码久久久久久婷婷| 国产中文字幕二| 大关县| ;三级黄色在线观看| 国产精品厕拍| 影音先锋色资源站| 亚洲综合色五月| 精品久久久久无码| 国产无码久久久久久久| 偷拍福利一区| 国产精品久久久久这里只有精品| 午夜剧场一区 二区| 日本不卡码视频| 久久99亚洲网美利坚合众国| 国产视频第15页| 少妇激情无码| 精品无码国产自产野外拍在线 | 激情图片小说国产高潮| 成人高考| 日韩中文字幕网站| 欧美 日韩 人妻 高清 中文| 婷婷五月开开心心| 夜精品一区二区三区| 亚洲第一色最快| 欧美日韩午夜精品| 初学生一级毛一我片| 破处欧美精品| 日日摸夜添夜夜夜添高潮|