最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ElasticSearch核心概念

 更新時間:2022年07月18日 10:49:22   作者:fFee-ops  
Elaticsearch簡稱為es,es是一個開源的高擴(kuò)展的分布式全文檢索引擎,本文給大家介紹ElasticSearch基礎(chǔ)知識介紹,對ElasticSearch相關(guān)知識感興趣的朋友一起看看吧

簡介

Elasticsearch 是一個分布式可擴(kuò)展的實(shí)時搜索和分析引擎,一個建立在全文搜索引擎 Apache Lucene™ 基礎(chǔ)上的搜索引擎.當(dāng)然 Elasticsearch 并不僅僅是 Lucene 那么簡單,它不僅包括了全文搜索功能,還可以進(jìn)行以下工作:

  • 分布式實(shí)時文件存儲,并將每一個字段都編入索引,使其可以被搜索。
  • 實(shí)時分析的分布式搜索引擎。
  • 可以擴(kuò)展到上百臺服務(wù)器,處理PB級別的結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)。

核心概念

以下為ES和Mysql等的對照關(guān)系

Relational DBElasticsearch
數(shù)據(jù)庫(database)索引(indices)
表(tables)types
行(rows)documents
字段(columns)fields

文檔

就是類似關(guān)系型數(shù)據(jù)庫的一行行的記錄

elasticsearch是面向文檔的,那么就意味著索弓和搜索數(shù)據(jù)的最小單位是文檔。

elasticsearch中,文檔有幾個重要屬性:

  • 自我包含, 一篇文檔同時包含字段和對應(yīng)的值,也就是同時包含key:value !
  • 可以是層次型的
  • 靈活的結(jié)構(gòu),文檔不依賴預(yù)先定義的模式,我們知道關(guān)系型數(shù)據(jù)庫中,要提前定義字段才能使用,在elasticsearch中,對于字段是非常靈活的,有時候,我們可以忽略該字段,或者動態(tài)的添加一個新的字段。

盡管我們可以隨意的新增或者忽略某個字段,但是,每個字段的類型非常重要,比如一一個年齡字段類型,可以是字符串也可以是整形。因?yàn)閑lasticsearch會保存字段和類型之間的映射及其他的設(shè)置。這種映射具體到每個映射的每種類型,這也是為什么在elasticsearch中,類型有時候也稱為映射類型。

類型

ES7之后Type被舍棄

類型是文檔的邏輯容器,就像關(guān)系型數(shù)據(jù)庫中的一樣。
類型中對于字段的定義稱為映射,比如name映射為字符串類型。

我們說文檔是無模式的 ,它們不需要擁有映射中所定義的所有字段。

但是如果要新增一個字段,那么elasticsearch的流程是什么?

elasticsearch會自動的將新字段加入映射,但是這個字段的不確定它是什么類型, elasticsearch就開始猜,如果這個值是18 ,那么elasticsearch會認(rèn)為它是整形。但是elasticsearch也可能猜不對 ,所以最安全的方式就是提前定義好所需要的映射,這點(diǎn)跟關(guān)系型數(shù)據(jù)庫殊途同歸了,先定義好字段,然后再使用。

索引

可以淺顯的理解為就是數(shù)據(jù)庫。

索引是映射類型的容器, elasticsearch中的索引是一個非常大的文檔集合。索引存儲了映射類型的字段和其他設(shè)置。然后它們被存儲到了各個分片上。

節(jié)點(diǎn)

Node為集群中的單臺節(jié)點(diǎn),其可以為master節(jié)點(diǎn)亦可為slave節(jié)點(diǎn)(節(jié)點(diǎn)屬性由集群內(nèi)部選舉得出)并提供存儲相關(guān)數(shù)據(jù)的功能

分片

在es中,默認(rèn)一個Es就是一個集群,一個集群又至少有一個節(jié)點(diǎn)。而一個節(jié)點(diǎn)就是一個es進(jìn)程,節(jié)點(diǎn)可以有多個默認(rèn)索引,如果你創(chuàng)建新索引,那么索引將會由5個分片( primary shard ,又稱主分片)構(gòu)成,每一個主分片會有一個副本( replica shard ,又稱復(fù)制分片)
分片有兩種類型:primary主片和replica副本,primary用于文檔存儲,Replica shard是Primary Shard的副本,用于冗余數(shù)據(jù)及提高搜索性能。

在這里插入圖片描述

上圖是一個有3個節(jié)點(diǎn)的集群,可以看到主分片和對應(yīng)的復(fù)制分片都不會在同一個節(jié)點(diǎn)內(nèi),這樣有利于某個節(jié)點(diǎn)掛掉了,數(shù)據(jù)也不至于丟失。
實(shí)際上, 一個分片是一個Lucene索引, 一個包含倒排索引的文件目錄,倒排索引的結(jié)構(gòu)使得elasticsearch在不掃描全部文檔的情況下,就能告訴你哪些文檔包含特定的關(guān)鍵字

倒排索引

elasticsearch使用的是一種稱為倒排索引的結(jié)構(gòu),采用Lucene倒排索作為底層。這種結(jié)構(gòu)適用于快速的全文搜索,一個索引由文檔中所有不重復(fù)的列表構(gòu)成,對于每一個詞,都有一個包含它的文檔列表。 例如,現(xiàn)在有兩個文檔,每個文檔包含如下內(nèi)容:

Study every day, good good up to forever  # 文檔1包含的內(nèi)容
To forever, study every day,good good up  # 文檔2包含的內(nèi)容

為為創(chuàng)建倒排索引,我們首先要將每個文檔拆分成獨(dú)立的詞(或稱為詞條或者tokens) ,然后創(chuàng)建一個包含所有不重復(fù)的詞條的排序列表,然后列出每個詞條出現(xiàn)在哪個文檔:

在這里插入圖片描述

現(xiàn)在,我們試圖搜索 to forever,只需要查看包含每個詞條的文檔

在這里插入圖片描述

兩個文檔都匹配,但是第一個文檔比第二個匹配程度更高。如果沒有別的條件,現(xiàn)在,這兩個包含關(guān)鍵字的文檔都將返回。

再來看一個示例,比如我們通過博客標(biāo)簽來搜索博客文章。那么倒排索引列表就是這樣的一個結(jié)構(gòu):

博客文章(原始數(shù)據(jù))博客文章(原始數(shù)據(jù))索引列表(倒排索引)索引列表(倒排索引)
博客文章ID標(biāo)簽標(biāo)簽博客文章ID
1pythonpython1,2,3
2pythonlinux3,4
3linux,python  
4linux

如果要搜索含有python標(biāo)簽的文章,那相對于查找所有原始數(shù)據(jù)而言,查找倒排索引后的數(shù)據(jù)將會快的多。只需要查看標(biāo)簽這一欄,然后獲取相關(guān)的文章ID即可。完全過濾掉無關(guān)的所有數(shù)據(jù),提高效率!

elasticsearch的索引和Lucene的索引對比
在elasticsearch中,索引(庫)這個詞被頻繁使用,這就是術(shù)語的使用。在elasticsearch中 ,索引被分為多個分片,每份分片是一個Lucene的索引。所以一個elasticsearch索引是由多 個Lucene索引組成的。

到此這篇關(guān)于ElasticSearch簡介的文章就介紹到這了,更多相關(guān)ElasticSearch簡介內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 完美解決DeepSeek服務(wù)器繁忙問題

    完美解決DeepSeek服務(wù)器繁忙問題

    文章介紹解決DeepSeek服務(wù)器繁忙問題的三種方案用戶端即時優(yōu)化、高級技術(shù)方案和替代方案,用戶端方案包括使用網(wǎng)絡(luò)加速工具和錯峰使用策略,高級技術(shù)方案涉及本地化部署和通過第三方平臺調(diào)用模型,替代方案推薦使用納米AI搜索、硅基流動和秘塔AI等工具,感興趣的朋友一起看看
    2025-02-02
  • 編程界主流腳本編程語言的比較和選擇

    編程界主流腳本編程語言的比較和選擇

    這篇文章主要介紹了編程界主流腳本編程語言的比較和選擇,本文分析了Unix/Linux Shell、Python/Jython、Ruby/JRuby、Perl、Groovy等腳本語言的優(yōu)缺點(diǎn),幫助您快速了解各大語言,需要的朋友可以參考下
    2015-05-05
  • Unicode編碼大揭秘

    Unicode編碼大揭秘

    這篇文章主要介紹了Unicode編碼大揭秘,本文介紹了編碼的歷史,Unicode的出現(xiàn)原因等,需要的朋友可以參考下
    2014-07-07
  • 使用八爪魚采集器采集滾動加載和點(diǎn)擊加載數(shù)據(jù)的教程

    使用八爪魚采集器采集滾動加載和點(diǎn)擊加載數(shù)據(jù)的教程

    現(xiàn)在很多網(wǎng)站的列表,需要向下滾動頁面,才能加載出新數(shù)據(jù)?;蛘唿c(diǎn)擊“查看更多”加載新數(shù)據(jù)。使用廣泛的火車頭采集器相對無力,使用八爪魚采集器可以采集滾動刷新和點(diǎn)擊刷新。
    2023-05-05
  • arcgis?pro?3.0.2?安裝及?geemap安裝過程

    arcgis?pro?3.0.2?安裝及?geemap安裝過程

    ArcGIS?Pro是一個專業(yè)的桌面GIS應(yīng)用程序,可以探索,可視化,分析和管理二維和三維數(shù)據(jù),這篇文章主要介紹了arcgis?pro?3.0.2安裝及geemap,需要的朋友可以參考下
    2023-08-08
  • 都2019年了,還問http中GET和POST的區(qū)別

    都2019年了,還問http中GET和POST的區(qū)別

    最近看了一些同學(xué)的面經(jīng),發(fā)現(xiàn)無論什么技術(shù)崗位,還是會問到 get 和 post 的區(qū)別,而搜索出來的答案并不能讓我們裝得一手好逼,那就讓我們從 HTTP 報文的角度來擼一波,從而搞明白他們的區(qū)別
    2019-02-02
  • 帶你了解HDFS的Namenode 高可用機(jī)制

    帶你了解HDFS的Namenode 高可用機(jī)制

    為了Hadoop更好的應(yīng)用,Hadoop 2.0 及之后版本增加了 Namenode 高可用機(jī)制,本文詳細(xì)介紹 Namenode 高可用機(jī)制,可供大家參考
    2021-08-08
  • Web Jmeter–接口測試工具詳解

    Web Jmeter–接口測試工具詳解

    本文主要介紹Web Jmeter接口測試工具,這里整理了詳細(xì)的資料來說明Jmeter 的使用,有需要的小伙伴可以參考下
    2016-09-09
  • TypeScript類型檢查詳談及火爆原因

    TypeScript類型檢查詳談及火爆原因

    這篇文章主要為大家介紹了TypeScript類型檢查以及火爆原因,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Hadoop環(huán)境搭建過程中遇到的問題及解決方法

    Hadoop環(huán)境搭建過程中遇到的問題及解決方法

    這篇文章主要介紹了Hadoop環(huán)境搭建過程中遇到的問題及解決方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友參考下吧
    2019-08-08

最新評論

罗源县| 名山县| 仲巴县| 清原| 社会| 诸暨市| 宁乡县| 商南县| 休宁县| 凯里市| 新化县| 马鞍山市| 徐汇区| 石首市| 天全县| 华安县| 抚顺市| 贵南县| 和硕县| 朔州市| 海丰县| 盐亭县| 望奎县| 工布江达县| 灵宝市| 英山县| 黄梅县| 乌苏市| 九龙县| 兴安盟| 富顺县| 曲阳县| 兴国县| 洛扎县| 鄂伦春自治旗| 东台市| 达日县| 太仆寺旗| 雷州市| 淮安市| 清流县|