ElasticSearch實(shí)戰(zhàn)(二)-核心概念之NRT/Document/Index/分片/副本

      網(wǎng)友投稿 877 2025-04-04

      1 lucene VS elasticsearch


      lucene,最先進(jìn)、功能最強(qiáng)大的Java搜索類庫。直接基于lucene開發(fā),非常復(fù)雜,api復(fù)雜(實(shí)現(xiàn)簡(jiǎn)單功能,寫大量java代碼),需要深入理解原理(各種索引結(jié)構(gòu))。

      elasticsearch,基于lucene,隱藏復(fù)雜性,提供簡(jiǎn)單易用的restful api接口、java api接口(還有其他語言的api接口)

      (1)分布式的文檔存儲(chǔ)引擎

      (2)分布式的搜索引擎和分析引擎

      (3)分布式,支持PB級(jí)數(shù)據(jù)

      開箱即用,優(yōu)秀的默認(rèn)參數(shù),不需要任何額外設(shè)置,完全開源。

      2 核心概念

      2.1 近實(shí)時(shí)-Near Realtime(NRT)

      從寫入數(shù)據(jù)到數(shù)據(jù)可以被搜索到有一個(gè)小延遲(大概1秒),基于es執(zhí)行搜索和分析可以達(dá)到秒級(jí)。

      2.2 集群-Cluster

      包含多個(gè)節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)屬于哪個(gè)集群是通過一個(gè)配置(集群名稱,默認(rèn)是elasticsearch)決定。

      對(duì)于中小型應(yīng)用來說,剛開始一個(gè)集群就一個(gè)節(jié)點(diǎn)很正常。

      2.3 節(jié)點(diǎn)-Node

      集群中的一個(gè)節(jié)點(diǎn),節(jié)點(diǎn)也有一個(gè)名稱(默認(rèn)是隨機(jī)分配的),節(jié)點(diǎn)名稱很重要(在執(zhí)行運(yùn)維管理操作的時(shí)候),默認(rèn)節(jié)點(diǎn)會(huì)去加入一個(gè)名稱為“elasticsearch”的集群,如果直接啟動(dòng)一堆節(jié)點(diǎn),那么它們會(huì)自動(dòng)組成一個(gè)elasticsearch集群,當(dāng)然一個(gè)節(jié)點(diǎn)也可以組成一個(gè)elasticsearch集群

      2.4 索引-Index(表)

      由具有相同字段的文檔列表組成,包含一堆相似結(jié)構(gòu)的文檔數(shù)據(jù)。

      比如可以有一個(gè)客戶索引,商品分類索引,訂單索引。索引有一個(gè)名稱

      一個(gè)index包含很多document,一個(gè)index就代表了一類類似/相同的document。

      比如建立一個(gè)product index 商品索引,里面可能就存放了所有的商品數(shù)據(jù)(商品document)。

      索引中存儲(chǔ)具有相同結(jié)構(gòu)的文檔(Document)

      每個(gè)索引都有自己的mapping定義(類似 MySQL 的 schema),用于定義字段名和類型

      一個(gè)集群可以有多個(gè)索引,比如

      nginx日志存儲(chǔ)的時(shí)候可以按照日期每天生成一個(gè)索引來存儲(chǔ)

      nginx-log-2020-01-01

      nginx-log-2020-01-02

      nginx-log-2020-01-03

      2.5 Document & field(行 & 列)

      document

      JSON結(jié)構(gòu),用戶存儲(chǔ)在 ES 中的數(shù)據(jù)文檔。一個(gè)document可以是一條客戶數(shù)據(jù),一條商品分類數(shù)據(jù),一條訂單數(shù)據(jù)。由字段 Filed 組成。

      每個(gè)文檔有唯一的id標(biāo)識(shí):

      自行指定

      es自動(dòng)生成

      字符串

      text、keyword

      數(shù)值型

      long、integer、short, byte, double, float half_float, scaled_float

      布爾

      boolean

      日期

      date

      二進(jìn)制

      binary

      范圍

      integer_range, float_range, long_range, double_range, date_ range

      _ index: 文檔所在的索引名

      _type: 文檔所在的類型名

      _id:文檔唯一id

      _uid:組合id,由type和. jid 組成(ES 6.x開始 _type不再起作用,同_id)

      _source:文檔原始JSON數(shù)據(jù),存儲(chǔ)了文檔的完整原始數(shù)據(jù),可從這里獲取每個(gè)字段內(nèi)容

      _all:整合所有字段內(nèi)容到該字段,默認(rèn)禁用,因其針對(duì)所有字段內(nèi)容分詞,很占磁盤空間

      field

      每個(gè)index下的type,都可以存儲(chǔ)多個(gè)document。一個(gè)document里面有多個(gè)field,每個(gè)field就是一個(gè)數(shù)據(jù)字段列。

      product document { "product_id": "1", "product_name": "JavaEdge 公眾號(hào)", "product_desc": "全是技術(shù)干貨", "category_id": "2", "category_name": "技術(shù)追求" }

      1

      2

      3

      4

      5

      6

      7

      8

      2.6 shard

      單臺(tái)機(jī)器無法存儲(chǔ)大量數(shù)據(jù),es可以將一個(gè)索引中的數(shù)據(jù)切分為多個(gè)shard,分布在多臺(tái)服務(wù)器上存儲(chǔ)

      有了shard就可以橫向擴(kuò)展,存儲(chǔ)更多數(shù)據(jù),讓搜索和分析等操作分布到多臺(tái)服務(wù)器上去執(zhí)行,提升吞吐量和性能

      每個(gè)shard都是一個(gè)lucene index。

      2.7 replica

      任何一個(gè)服務(wù)器隨時(shí)可能故障或宕機(jī),此時(shí)shard可能就會(huì)丟失,因此可以為每個(gè)shard創(chuàng)建多個(gè)replica副本。

      replica可以在shard故障時(shí)提供備用服務(wù),保證數(shù)據(jù)不丟失,多個(gè)replica還可以提升搜索操作的吞吐量和性能。primary shard(建立索引時(shí)一次設(shè)置,不能修改,默認(rèn)5個(gè)),replica shard(隨時(shí)修改數(shù)量,默認(rèn)1個(gè)),默認(rèn)每個(gè)索引10個(gè)shard,5個(gè)primary shard,5個(gè)replica shard,最小的高可用配置,是2臺(tái)服務(wù)器。

      shard和replica的解釋

      類型 Type(表邏輯類型)ES 7.x中已廢除

      每個(gè)index都可有一或多個(gè)type,type是index的一個(gè)邏輯數(shù)據(jù)分類。

      一個(gè)type下的document,都有相同field。

      比如博客系統(tǒng),有一個(gè)索引,可定義用戶數(shù)據(jù)type,博客數(shù)據(jù)type,評(píng)論數(shù)據(jù)type。

      商品index,里面存放了所有的商品數(shù)據(jù),商品document

      但是商品分很多種類,每個(gè)種類的document的field可能不太一樣

      比如說電器商品,可能還包含一些諸如售后時(shí)間范圍這樣的特殊field;生鮮商品,還包含一些諸如生鮮保質(zhì)期之類的特殊field

      type,日化商品type,電器商品type,生鮮商品type

      日化商品type:product_id,product_name,product_desc,category_id,category_name 電器商品type:product_id,product_name,product_desc,category_id,category_name,service_period 生鮮商品type:product_id,product_name,product_desc,category_id,category_name,eat_period

      1

      2

      3

      每個(gè)type里,包含一堆document

      { "product_id": "2", "product_name": "長(zhǎng)虹電視機(jī)", "product_desc": "4k高清", "category_id": "3", "category_name": "電器", "service_period": "1年" } { "product_id": "3", "product_name": "基圍蝦", "product_desc": "純天然,冰島產(chǎn)", "category_id": "4", "category_name": "生鮮", "eat_period": "7天" }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      ElasticSearch實(shí)戰(zhàn)(二)-核心概念之NRT/Document/Index/分片/副本

      10

      11

      12

      13

      14

      15

      16

      3 RESTful API(REpresentational State Transfer)

      Elasticsearch 集群對(duì)外提供RESTful API

      URI 指定資源 , 如 Index、Document等

      Http Method 指明資源操作類型,如GET、POST、 PUT、DELETE

      交互方式

      curl 命令行

      Kibana DevTools

      Elasticsearch 實(shí)時(shí)流計(jì)算服務(wù) CS

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:2010excel表格怎么打印預(yù)覽
      下一篇:機(jī)器視覺檢測(cè)技術(shù)對(duì)制造業(yè)的重大影響
      相關(guān)文章
      国产亚洲人成网站在线观看| 亚洲人成色777777老人头| 色偷偷尼玛图亚洲综合| 亚洲av无码国产综合专区| 亚洲国产第一页www| 亚洲国产综合精品中文第一区| 亚洲五月综合缴情在线观看| 伊人亚洲综合青草青草久热| 亚洲日韩在线观看免费视频| 亚洲国产成人VA在线观看| 亚洲国产精品自在拍在线播放| 最新亚洲人成无码网站| 亚洲精品无码久久久久A片苍井空| 亚洲中文字幕乱码熟女在线| 亚洲中文字幕一二三四区| 亚洲精品无码久久久久YW| 激情小说亚洲色图| 亚洲第一区精品观看| 亚洲无码视频在线| 亚洲午夜久久久久久久久久| 亚洲精品成人无码中文毛片不卡| 亚洲精品国产精品乱码视色| 久久精品国产精品亚洲色婷婷| 久久久亚洲精品国产| 久久久亚洲AV波多野结衣| 亚洲国产品综合人成综合网站| 亚洲香蕉久久一区二区三区四区| 亚洲成_人网站图片| 亚洲国产AV无码一区二区三区| 久久久久久亚洲av无码蜜芽| 亚洲成人影院在线观看| 亚洲欧洲∨国产一区二区三区| 亚洲AV日韩精品久久久久久| 亚洲视频在线观看视频| 亚洲一区无码中文字幕乱码| 亚洲欧洲AV无码专区| 亚洲?v女人的天堂在线观看| 亚洲色偷偷偷鲁综合| 91情国产l精品国产亚洲区| avtt天堂网手机版亚洲| 欧洲亚洲综合一区二区三区|