自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

終于有人把Elasticsearch原理講透了!

開(kāi)發(fā) 架構(gòu) 開(kāi)發(fā)工具
小史是一個(gè)非科班的程序員,雖然學(xué)的是電子專業(yè),但是通過(guò)自己的努力成功通過(guò)了面試,現(xiàn)在要開(kāi)始迎接新生活了。

小史是一個(gè)非科班的程序員,雖然學(xué)的是電子專業(yè),但是通過(guò)自己的努力成功通過(guò)了面試,現(xiàn)在要開(kāi)始迎接新生活了。

隨著央視詩(shī)詞大會(huì)的熱播,小史開(kāi)始對(duì)詩(shī)詞感興趣,最喜歡的就是飛花令的環(huán)節(jié)。

[[261601]]

但是由于小史很久沒(méi)有背過(guò)詩(shī)詞了,飛一個(gè)字很難說(shuō)出一句,很多之前很熟悉的詩(shī)句也想不起來(lái)。

倒排索引

呂老師:但是我讓你說(shuō)出帶“前”字的詩(shī)句,由于沒(méi)有索引,你只能遍歷腦海中所有詩(shī)詞,當(dāng)你的腦海中詩(shī)詞量大的時(shí)候,就很難在短時(shí)間內(nèi)得到結(jié)果了。

索引量爆炸

搜索引擎原理

Elasticsearch 簡(jiǎn)介

呂老師:但是 Lucene 還是一個(gè)庫(kù),必須要懂一點(diǎn)搜索引擎原理的人才能用的好,所以后來(lái)又有人基于 Lucene 進(jìn)行封裝,寫出了 Elasticsearch。

Elasticsearch 基本概念

呂老師:類型是用來(lái)定義數(shù)據(jù)結(jié)構(gòu)的,你可以認(rèn)為是 MySQL 中的一張表。文檔就是最終的數(shù)據(jù)了,你可以認(rèn)為一個(gè)文檔就是一條記錄。

呂老師:比如一首詩(shī),有詩(shī)題、作者、朝代、字?jǐn)?shù)、詩(shī)內(nèi)容等字段,那么首先,我們可以建立一個(gè)名叫 Poems 的索引,然后創(chuàng)建一個(gè)名叫 Poem 的類型,類型是通過(guò) Mapping 來(lái)定義每個(gè)字段的類型。

比如詩(shī)題、作者、朝代都是 Keyword 類型,詩(shī)內(nèi)容是 Text 類型,而字?jǐn)?shù)是 Integer 類型,***就是把數(shù)據(jù)組織成 Json 格式存放進(jìn)去了。

呂老師:這個(gè)問(wèn)題問(wèn)得好,這涉及到分詞的問(wèn)題,Keyword 類型是不會(huì)分詞的,直接根據(jù)字符串內(nèi)容建立反向索引,Text 類型在存入 Elasticsearch 的時(shí)候,會(huì)先分詞,然后根據(jù)分詞后的內(nèi)容建立反向索引。

呂老師:之前我們說(shuō)過(guò),Elasticsearch 把操作都封裝成了 HTTP 的 API,我們只要給 Elasticsearch 發(fā)送 HTTP 請(qǐng)求就行。

比如使用 curl -XPUT 'http://ip:port/poems',就能建立一個(gè)名為 Poems 的索引,其他操作也是類似的。

Elasticsearch 分布式原理

呂老師:沒(méi)錯(cuò),Elasticsearch 也是會(huì)對(duì)數(shù)據(jù)進(jìn)行切分,同時(shí)每一個(gè)分片會(huì)保存多個(gè)副本,其原因和 HDFS 是一樣的,都是為了保證分布式環(huán)境下的高可用。

呂老師:沒(méi)錯(cuò),在 Elasticsearch 中,節(jié)點(diǎn)是對(duì)等的,節(jié)點(diǎn)間會(huì)通過(guò)自己的一些規(guī)則選取集群的 Master,Master 會(huì)負(fù)責(zé)集群狀態(tài)信息的改變,并同步給其他節(jié)點(diǎn)。

呂老師:注意,只有建立索引和類型需要經(jīng)過(guò) Master,數(shù)據(jù)的寫入有一個(gè)簡(jiǎn)單的 Routing 規(guī)則,可以 Route 到集群中的任意節(jié)點(diǎn),所以數(shù)據(jù)寫入壓力是分散在整個(gè)集群的。

ELK 系統(tǒng)

呂老師:其實(shí)很多公司都用 Elasticsearch 搭建 ELK 系統(tǒng),也就是日志分析系統(tǒng)。其中 E 就是 Elasticsearch,L 是 Logstash,是一個(gè)日志收集系統(tǒng),K 是 Kibana,是一個(gè)數(shù)據(jù)可視化平臺(tái)。

呂老師:分析日志的用處可大了,你想,假如一個(gè)分布式系統(tǒng)有 1000 臺(tái)機(jī)器,系統(tǒng)出現(xiàn)故障時(shí),我要看下日志,還得一臺(tái)一臺(tái)登錄上去查看,是不是非常麻煩?

呂老師:但是如果日志接入了 ELK 系統(tǒng)就不一樣。比如系統(tǒng)運(yùn)行過(guò)程中,突然出現(xiàn)了異常,在日志中就能及時(shí)反饋,日志進(jìn)入 ELK 系統(tǒng)中,我們直接在 Kibana 就能看到日志情況。如果再接入一些實(shí)時(shí)計(jì)算模塊,還能做實(shí)時(shí)報(bào)警功能。

 

總結(jié)

小史學(xué)完了 Elasticsearch,在筆記本上寫下了如下記錄:

  • 反向索引又叫倒排索引,是根據(jù)文章內(nèi)容中的關(guān)鍵字建立索引。
  • 搜索引擎原理就是建立反向索引。
  • Elasticsearch 在 Lucene 的基礎(chǔ)上進(jìn)行封裝,實(shí)現(xiàn)了分布式搜索引擎。
  • Elasticsearch 中的索引、類型和文檔的概念比較重要,類似于 MySQL 中的數(shù)據(jù)庫(kù)、表和行。
  • Elasticsearch 也是 Master-slave 架構(gòu),也實(shí)現(xiàn)了數(shù)據(jù)的分片和備份。
  • Elasticsearch 一個(gè)典型應(yīng)用就是 ELK 日志分析系統(tǒng)。

寫完,又高高興興背詩(shī)去了。

觀書有感(朱熹)

半畝方塘一鑒開(kāi),天光云影共徘徊。

問(wèn)渠那得清如許?為有源頭活水來(lái)。

 

責(zé)任編輯:武曉燕 來(lái)源: 互聯(lián)網(wǎng)偵察
相關(guān)推薦

2019-04-16 13:37:15

架構(gòu)技術(shù)棧微信半月刊

2023-11-20 07:10:48

用戶分析聚類算法

2018-07-13 11:12:03

芯片設(shè)計(jì) IC

2021-11-19 06:50:17

OAuth協(xié)議授權(quán)

2021-10-09 00:02:04

DevOps敏捷開(kāi)發(fā)

2021-06-13 12:03:46

SaaS軟件即服務(wù)

2022-03-27 20:32:28

Knative容器事件模型

2020-06-28 10:52:47

HTTP緩存Web

2018-11-23 09:25:00

TCC分布式事務(wù)

2021-11-15 17:30:35

模型人工智能深度學(xué)習(xí)

2021-03-25 11:24:25

爬蟲技術(shù)開(kāi)發(fā)

2021-12-03 18:25:56

數(shù)據(jù)指標(biāo)本質(zhì)

2022-04-27 18:25:02

數(shù)據(jù)采集維度

2021-10-17 20:38:30

微服務(wù)內(nèi)存組件

2020-11-03 07:04:39

云計(jì)算公有云私有云

2021-10-12 18:31:40

流量運(yùn)營(yíng)前端

2020-07-29 09:21:34

Docker集群部署隔離環(huán)境

2020-11-30 08:34:44

大數(shù)據(jù)數(shù)據(jù)分析技術(shù)

2021-02-14 00:21:37

區(qū)塊鏈數(shù)字貨幣金融

2021-03-03 21:31:24

量化投資利潤(rùn)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)