最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【建議收藏】全文搜索引擎ElasticSearch

2021-05-18 16:00 作者:編程大戰(zhàn)  | 我要投稿

? ? 迄今為止很多家公司都在使用?Elasticsearch,在互聯(lián)網(wǎng)公司員工對(duì)于ES討論的問題必然不會(huì)缺少,例如說:把數(shù)據(jù)放在引擎,從引擎取出數(shù)據(jù)等等

????如果沒有了解過搜索引擎的同學(xué),根本聽不同他們?cè)谡f些什么,在這里UP帶領(lǐng)你們來了解一下“全文搜索引擎ElasticSearch”這個(gè)引擎;

????引擎一詞,一般指收搜索引擎,而搜索引擎現(xiàn)在用的比較多的就是:ElasticSearch,那ElasticSearch同學(xué)你們又了解多少呢?


一、?Elasticsearch簡介

????Elasticsearch是一個(gè)基于Lucene的搜索服務(wù)器。它提供了一個(gè)分布式的全文搜索引擎,其對(duì)外服務(wù)是基于RESTful web接口發(fā)布的。

????Elasticsearch是用Java開發(fā)的應(yīng)用,并作為Apache許可條款下的開放源碼發(fā)布,是當(dāng)前流行的企業(yè)級(jí)搜索引擎。設(shè)計(jì)用于云計(jì)算中,能夠達(dá)到近實(shí)時(shí)搜索,穩(wěn)定,可靠,快速,安裝使用方便。

Elasticsearch有兩大功能,這兩個(gè)主要功能:.

搜索:功能和Solr類似。

分析:結(jié)合LogStash使用。

二、Elasticsearch相關(guān)核心概念

1?cluster

集群。Elasticsearch集群由一或多個(gè)節(jié)點(diǎn)組成,其中有一個(gè)主節(jié)點(diǎn),這個(gè)主節(jié)點(diǎn)是可以通過選舉產(chǎn)生的,主從節(jié)點(diǎn)是對(duì)于集群內(nèi)部來說的。Elasticsearch的一個(gè)概念就是去中心化,字面上理解就是無中心節(jié)點(diǎn),這是對(duì)于集群外部來說的,因?yàn)閺耐獠靠碋lasticsearch集群,在邏輯上是個(gè)整體,你與集群中的任何一個(gè)節(jié)點(diǎn)通信和與整個(gè)Elasticsearch集群通信是等價(jià)的。也就是說,主節(jié)點(diǎn)的存在不會(huì)產(chǎn)生單點(diǎn)安全隱患、并發(fā)訪問瓶頸等問題。

2?shards

primary shard:代表索引的主分片,Elasticsearch可以把一個(gè)完整的索引分成多個(gè)primary shard,這樣的好處是可以把一個(gè)大的索引拆分成多個(gè)分片,分布存儲(chǔ)在不同的Elasticsearch節(jié)點(diǎn)上,從而形成分布式存儲(chǔ),并為搜索訪問提供分布式服務(wù),提高并發(fā)處理能。primary shard的數(shù)量只能在索引創(chuàng)建時(shí)指定,并且索引創(chuàng)建后不能再更改primary shard數(shù)量。

3?replicas

replica shard:代表索引主分片的副本,Elasticsearch可以設(shè)置多個(gè)replica shard。replica shard的作用:

一是提高系統(tǒng)的容錯(cuò)性,當(dāng)某個(gè)節(jié)點(diǎn)某個(gè)primary shard損壞或丟失時(shí)可以從副本中恢復(fù)。

二是提高Elasticsearch的查詢效率,Elasticsearch會(huì)自動(dòng)對(duì)搜索請(qǐng)求進(jìn)行負(fù)載均衡,將并發(fā)的搜索請(qǐng)求發(fā)送給合適的節(jié)點(diǎn),增強(qiáng)并發(fā)處理能力。

4?Index

索引。相當(dāng)于關(guān)系型數(shù)據(jù)庫中的表。其中存儲(chǔ)若干相似結(jié)構(gòu)的Document數(shù)據(jù)。如:客戶索引,訂單索引,商品索引等。Elasticsearch中的索引不像數(shù)據(jù)庫表格一樣有強(qiáng)制的數(shù)據(jù)結(jié)構(gòu)約束,在理論上,可以存儲(chǔ)任意結(jié)構(gòu)的數(shù)據(jù)。但了為更好的為業(yè)務(wù)提供搜索數(shù)據(jù)支撐,還是要設(shè)計(jì)合適的索引體系來存儲(chǔ)不同的數(shù)據(jù)。

5 Type

類型。每個(gè)索引中都必須有唯一的一個(gè)Type,Type是Index中的一個(gè)邏輯分類。Elasticsearch中的數(shù)據(jù)Document是存儲(chǔ)在索引下的Type中的。

注意:Elasticsearch5.x及更低版本中,一個(gè)Index中可以有多個(gè)Type。Elasticsearch6.x版本之后,type概念被弱化,一個(gè)index中只能有唯一的一個(gè)type。且在7.x版本之后,刪除type定義。

6?Document

文檔。Elasticsearch中的最小數(shù)據(jù)單元。一個(gè)Document就是一條數(shù)據(jù),一般使用JSON數(shù)據(jù)結(jié)構(gòu)表示。每個(gè)Index下的Type中都可以存儲(chǔ)多個(gè)Document。一個(gè)Document中可定義多個(gè)field,field就是數(shù)據(jù)字段。如:學(xué)生數(shù)據(jù)({"name":"張三", "age":20, "gender":"男"})。

7?元數(shù)據(jù)

在Elasticsearch中所有以“_”開頭的屬性都成為元數(shù)據(jù),都有著自己特定的含義。

例如:_index:表示索引

8?倒排索引|反向索引

對(duì)數(shù)據(jù)進(jìn)行分析,抽取出數(shù)據(jù)中的詞條,以詞條作為key,對(duì)應(yīng)數(shù)據(jù)的存儲(chǔ)位置作為value,實(shí)現(xiàn)索引的存儲(chǔ)。這種索引稱為倒排索引。倒排索引是Document寫入Elasticsearch時(shí)分析維護(hù)的。

三、Elasticsearch常見使用場(chǎng)景-平臺(tái)

維基百科:全文檢索,高亮顯示,搜索推薦

The Guardian(國外的一個(gè)新聞網(wǎng)站),此平臺(tái)可以對(duì)用戶的行為(點(diǎn)擊、瀏覽、收藏、評(píng)論)、社區(qū)網(wǎng)絡(luò)數(shù)據(jù)(對(duì)新聞的評(píng)論等)進(jìn)行數(shù)據(jù)分析,為新聞的發(fā)布者提供相關(guān)的公眾反饋。

Stack Overflow(國外的程序異常討論論壇)

Github(開源代碼管理),在千億級(jí)別的代碼行中搜索信息

電子商務(wù)平臺(tái)等。


四、Elasticsearch架構(gòu)圖

架構(gòu)圖介紹:

  • Gateway代表ElasticSearch索引的持久化存儲(chǔ)方式。在Gateway中,ElasticSearch默認(rèn)先把索引存儲(chǔ)在內(nèi)存中,然后當(dāng)內(nèi)存滿的時(shí)候,再持久化到Gateway里。當(dāng)ES集群關(guān)閉或重啟的時(shí)候,它就會(huì)從Gateway里去讀取索引數(shù)據(jù)。比如LocalFileSystem和HDFS、AS3等。

  • DistributedLucene Directory,它是Lucene里的一些列索引文件組成的目錄。它負(fù)責(zé)管理這些索引文件。包括數(shù)據(jù)的讀取、寫入,以及索引的添加和合并等。

  • River,代表是數(shù)據(jù)源。是以插件的形式存在于ElasticSearch中?!?/span>

  • Mapping,映射的意思,非常類似于靜態(tài)語言中的數(shù)據(jù)類型。比如我們聲明一個(gè)int類型的變量,那以后這個(gè)變量只能存儲(chǔ)int類型的數(shù)據(jù)。比如我們聲明一個(gè)double類型的mapping字段,則只能存儲(chǔ)double類型的數(shù)據(jù)。Mapping不僅是告訴ElasticSearch,哪個(gè)字段是哪種類型。還能告訴ElasticSearch如何來索引數(shù)據(jù),以及數(shù)據(jù)是否被索引到等。

  • Index Moudle,Elasticsearch里的索引概念是名詞而不是動(dòng)詞,在elasticsearch里它支持多個(gè)索引。優(yōu)點(diǎn)類似于關(guān)系數(shù)據(jù)庫里面每一個(gè)服務(wù)器可以支持多個(gè)數(shù)據(jù)庫是一個(gè)道理,在每一索引下面又可以支持多種類型,這又類似于關(guān)系數(shù)據(jù)庫里面的一個(gè)數(shù)據(jù)庫可以有多張表一樣。但是本質(zhì)上和關(guān)系數(shù)據(jù)庫還是有很大的區(qū)別,我們這里暫時(shí)可以這么理解

  • Search Module,搜索查詢模塊。

  • Disvcovery,主要是負(fù)責(zé)集群的master節(jié)點(diǎn)發(fā)現(xiàn)。比如某個(gè)節(jié)點(diǎn)突然離開或進(jìn)來的情況,進(jìn)行一個(gè)分片重新分片等。這里有個(gè)發(fā)現(xiàn)機(jī)制。發(fā)現(xiàn)機(jī)制默認(rèn)的實(shí)現(xiàn)方式是單播和多播的形式,即Zen,同時(shí)也支持點(diǎn)對(duì)點(diǎn)的實(shí)現(xiàn)。另外一種是以插件的形式,即EC2。

  • Scripting,即腳本語言。包括很多,這里不多贅述。如mvel、js、python等。

  • Transport,代表ElasticSearch內(nèi)部節(jié)點(diǎn),代表跟集群的客戶端交互。包括Thrift、Memcached、Http等協(xié)議

  • RESTful Style API,通過RESTful方式來實(shí)現(xiàn)API編程。

  • 3rd plugins,代表第三方插件。

  • Java(Netty),是開發(fā)框架。

  • JMX,是監(jiān)控。

最后想要學(xué)習(xí)Elasticsearch的同學(xué)可以觀看UP主上傳的視頻哦,鏈接如下:

喜歡UP主視頻的,點(diǎn)贊關(guān)注收藏一哦~


【建議收藏】全文搜索引擎ElasticSearch的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
隆回县| 清丰县| 巴彦县| 三原县| 汉中市| 鄂托克旗| 台南市| 汉中市| 安丘市| 志丹县| 巴林右旗| 淮安市| 济宁市| 万安县| 永川市| 辉南县| 手机| 当涂县| 周至县| 中方县| 乌鲁木齐市| 宽城| 盱眙县| 东兴市| 陵川县| 惠安县| 武冈市| 麟游县| 申扎县| 古丈县| 万年县| 长丰县| 娄底市| 东源县| 广河县| 达尔| 进贤县| 上饶市| 通州区| 清河县| 石台县|