国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

分布式搜索引擎--認(rèn)識

這篇具有很好參考價(jià)值的文章主要介紹了分布式搜索引擎--認(rèn)識。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

elasticsearch的作用

elasticsearch是一款非常強(qiáng)大的開源搜索引擎,具備非常多強(qiáng)大功能,可以幫助我們從海量數(shù)據(jù)中快速找到需要的內(nèi)容 。

elasticsearch結(jié)合kibana、Logstash、Beats,也就是elastic stack(ELK)。被廣泛應(yīng)用在日志數(shù)據(jù)分析、實(shí)時(shí)監(jiān)控等領(lǐng)域。

而elasticsearch是elastic stack的核心,負(fù)責(zé)存儲、搜索、分析數(shù)據(jù)。

elasticsearch和lucene

elasticsearch底層是基于lucene來實(shí)現(xiàn)的。

Lucene是一個(gè)Java語言的搜索引擎類庫,是Apache公司的頂級項(xiàng)目,由DougCutting于1999年研發(fā)。官網(wǎng)地址:Apache Lucene - Welcome to Apache Lucene 。

分布式搜索引擎--認(rèn)識,微服務(wù),服務(wù)器,linux,數(shù)據(jù)庫

elasticsearch的發(fā)展歷史:

  • 2004年Shay Banon基于Lucene開發(fā)了Compass

  • 2010年Shay Banon 重寫了Compass,取名為Elasticsearch。

倒排索引

倒排索引中有兩個(gè)非常重要的概念:

  • 文檔(Document):用來搜索的數(shù)據(jù),其中的每一條數(shù)據(jù)就是一個(gè)文檔。例如一個(gè)網(wǎng)頁、一個(gè)商品信息

  • 詞條(Term):對文檔數(shù)據(jù)或用戶搜索數(shù)據(jù),利用某種算法分詞,得到的具備含義的詞語就是詞條。例如:我是中國人,就可以分為:我、是、中國人、中國、國人這樣的幾個(gè)詞條

創(chuàng)建倒排索引是對正向索引的一種特殊處理,流程如下:

  • 將每一個(gè)文檔的數(shù)據(jù)利用算法分詞,得到一個(gè)個(gè)詞條

  • 創(chuàng)建表,每行數(shù)據(jù)包括詞條、詞條所在文檔id、位置等信息

  • 因?yàn)樵~條唯一性,可以給詞條創(chuàng)建索引,例如hash表結(jié)構(gòu)索引

如圖:

分布式搜索引擎--認(rèn)識,微服務(wù),服務(wù)器,linux,數(shù)據(jù)庫

倒排索引的搜索流程如下(以搜索"華為手機(jī)"為例):

1)用戶輸入條件"華為手機(jī)"進(jìn)行搜索。

2)對用戶輸入內(nèi)容分詞,得到詞條:華為手機(jī)。

3)拿著詞條在倒排索引中查找,可以得到包含詞條的文檔id:1、2、3。

4)拿著文檔id到正向索引中查找具體文檔。

如圖:

分布式搜索引擎--認(rèn)識,微服務(wù),服務(wù)器,linux,數(shù)據(jù)庫

雖然要先查詢倒排索引,再查詢正向索引,但是無論是詞條、還是文檔id都建立了索引,查詢速度非常快!無需全表掃描。

正向和倒排

那么為什么一個(gè)叫做正向索引,一個(gè)叫做倒排索引呢?

  • 正向索引是最傳統(tǒng)的,根據(jù)id索引的方式。但根據(jù)詞條查詢時(shí),必須先逐條獲取每個(gè)文檔,然后判斷文檔中是否包含所需要的詞條,是根據(jù)文檔找詞條的過程。

  • 倒排索引則相反,是先找到用戶要搜索的詞條,根據(jù)詞條得到保護(hù)詞條的文檔的id,然后根據(jù)id獲取文檔。是根據(jù)詞條找文檔的過程。

優(yōu)缺點(diǎn):

正向索引

  • 優(yōu)點(diǎn):

    • 可以給多個(gè)字段創(chuàng)建索引

    • 根據(jù)索引字段搜索、排序速度非???/p>

  • 缺點(diǎn):

    • 根據(jù)非索引字段,或者索引字段中的部分詞條查找時(shí),只能全表掃描。

倒排索引

  • 優(yōu)點(diǎn):

    • 根據(jù)詞條搜索、模糊搜索時(shí),速度非???/p>

  • 缺點(diǎn):

    • 只能給詞條創(chuàng)建索引,而不是字段

    • 無法根據(jù)字段做排序

es的一些概念

elasticsearch是面向文檔(Document)存儲的,可以是數(shù)據(jù)庫中的一條商品數(shù)據(jù),一個(gè)訂單信息。文檔數(shù)據(jù)會被序列化為json格式后存儲在elasticsearch中:

分布式搜索引擎--認(rèn)識,微服務(wù),服務(wù)器,linux,數(shù)據(jù)庫

而Json文檔中往往包含很多的字段(Field),類似于數(shù)據(jù)庫中的列。

索引(Index),就是相同類型的文檔的集合。相當(dāng)于數(shù)據(jù)庫中的表。

例如:

  • 所有用戶文檔,就可以組織在一起,稱為用戶的索引;

  • 所有商品的文檔,可以組織在一起,稱為商品的索引;

  • 所有訂單的文檔,可以組織在一起,稱為訂單的索引;

分布式搜索引擎--認(rèn)識,微服務(wù),服務(wù)器,linux,數(shù)據(jù)庫

數(shù)據(jù)庫的表會有約束信息,用來定義表的結(jié)構(gòu)、字段的名稱、類型等信息。因此,索引庫中就有映射(mapping),是索引中文檔的字段約束信息,類似表的結(jié)構(gòu)約束。

mysql與elasticsearch

我們統(tǒng)一的把mysql與elasticsearch的概念做一下對比:

MySQL Elasticsearch 說明
Table Index 索引(index),就是文檔的集合,類似數(shù)據(jù)庫的表(table)
Row Document 文檔(Document),就是一條條的數(shù)據(jù),類似數(shù)據(jù)庫中的行(Row),文檔都是JSON格式
Column Field 字段(Field),就是JSON文檔中的字段,類似數(shù)據(jù)庫中的列(Column)
Schema Mapping Mapping(映射)是索引中文檔的約束,例如字段類型約束。類似數(shù)據(jù)庫的表結(jié)構(gòu)(Schema)
SQL DSL DSL是elasticsearch提供的JSON風(fēng)格的請求語句,用來操作elasticsearch,實(shí)現(xiàn)CRUD

是不是說,我們學(xué)習(xí)了elasticsearch就不再需要mysql了呢?

并不是如此,兩者各自有自己的擅長支出:

  • Mysql:擅長事務(wù)類型操作,可以確保數(shù)據(jù)的安全和一致性

  • Elasticsearch:擅長海量數(shù)據(jù)的搜索、分析、計(jì)算

因此在企業(yè)中,往往是兩者結(jié)合使用:

  • 對安全性要求較高的寫操作,使用mysql實(shí)現(xiàn)

  • 對查詢性能要求較高的搜索需求,使用elasticsearch實(shí)現(xiàn)

  • 兩者再基于某種方式,實(shí)現(xiàn)數(shù)據(jù)的同步,保證一致性

分布式搜索引擎--認(rèn)識,微服務(wù),服務(wù)器,linux,數(shù)據(jù)庫文章來源地址http://www.zghlxwxcb.cn/news/detail-799584.html

到了這里,關(guān)于分布式搜索引擎--認(rèn)識的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 微服務(wù)一實(shí)用篇:分布式搜索引擎(ElasticSearch)基礎(chǔ)解析

    微服務(wù)一實(shí)用篇:分布式搜索引擎(ElasticSearch)基礎(chǔ)解析

    學(xué)習(xí)分布式搜索引擎(ElasticSearch)的基礎(chǔ)知識,包括初識ElasticSearch、倒排索引、ES的一些概念、安裝和分詞器等。

    2024年02月16日
    瀏覽(21)
  • 微服務(wù)分布式搜索引擎 ElasticSearch 搜索結(jié)果處理 排序、分頁與高亮

    微服務(wù)分布式搜索引擎 ElasticSearch 搜索結(jié)果處理 排序、分頁與高亮

    本文參考黑馬 分布式Elastic search Elasticsearch是一款非常強(qiáng)大的開源搜索引擎,具備非常多強(qiáng)大功能,可以幫助我們從海量數(shù)據(jù)中快速找到需要的內(nèi)容 搜索結(jié)果處理 搜索的結(jié)果可以按照用戶指定的方式去處理或展示。 elasticsearch默認(rèn)是根據(jù)相關(guān)度算分(_score)來排序,但是也支

    2024年02月02日
    瀏覽(44)
  • 微服務(wù)分布式搜索引擎 Elastic Search RestClient 操作文檔

    微服務(wù)分布式搜索引擎 Elastic Search RestClient 操作文檔

    本文參考黑馬 分布式Elastic search Elasticsearch是一款非常強(qiáng)大的開源搜索引擎,具備非常多強(qiáng)大功能,可以幫助我們從海量數(shù)據(jù)中快速找到需要的內(nèi)容 初始化RestHighLevelClient 為了與索引庫操作分離,我們再次參加一個(gè)測試類,做兩件事情: 初始化RestHighLevelClient 我們的酒店數(shù)據(jù)

    2024年01月24日
    瀏覽(25)
  • 微服務(wù)04 分布式搜索引擎 elasticsearch DSL數(shù)據(jù)聚合 自動(dòng)補(bǔ)全 數(shù)據(jù)同步 集群 Sentinel

    微服務(wù)04 分布式搜索引擎 elasticsearch DSL數(shù)據(jù)聚合 自動(dòng)補(bǔ)全 數(shù)據(jù)同步 集群 Sentinel

    聚合(aggregations)可以讓我們極其 方便的實(shí)現(xiàn)對數(shù)據(jù)的統(tǒng)計(jì)、分析、運(yùn)算 。例如: 什么品牌的手機(jī)最受歡迎? 這些手機(jī)的平均價(jià)格、最高價(jià)格、最低價(jià)格? 這些手機(jī)每月的銷售情況如何? 實(shí)現(xiàn)這些 統(tǒng)計(jì)功能的比數(shù)據(jù)庫的sql要方便的多,而且查詢速度非???,可以實(shí)現(xiàn)近

    2024年02月11日
    瀏覽(28)
  • 微服務(wù)04 分布式搜索引擎 elasticsearch DSL數(shù)據(jù)聚合 自動(dòng)補(bǔ)全 數(shù)據(jù)同步 集群 微服務(wù)保護(hù) Sentinel

    微服務(wù)04 分布式搜索引擎 elasticsearch DSL數(shù)據(jù)聚合 自動(dòng)補(bǔ)全 數(shù)據(jù)同步 集群 微服務(wù)保護(hù) Sentinel

    聚合(aggregations)可以讓我們極其 方便的實(shí)現(xiàn)對數(shù)據(jù)的統(tǒng)計(jì)、分析、運(yùn)算 。例如: 什么品牌的手機(jī)最受歡迎? 這些手機(jī)的平均價(jià)格、最高價(jià)格、最低價(jià)格? 這些手機(jī)每月的銷售情況如何? 實(shí)現(xiàn)這些 統(tǒng)計(jì)功能的比數(shù)據(jù)庫的sql要方便的多,而且查詢速度非???,可以實(shí)現(xiàn)近

    2024年02月15日
    瀏覽(30)
  • 分布式搜索引擎

    分布式搜索引擎

    elasticsearch的查詢依然是基于JSON風(fēng)格的DSL來實(shí)現(xiàn)的。 Elasticsearch提供了基于JSON的DSL(Domain Specific Language)來定義查詢。常見的查詢類型包括: 查詢所有 :查詢出所有數(shù)據(jù),一般測試用。例如:match_all 全文檢索(full text)查詢 :利用分詞器對用戶輸入內(nèi)容分詞,然后去倒排索

    2024年02月10日
    瀏覽(25)
  • 火山引擎云搜索服務(wù)升級云原生新架構(gòu);提供數(shù)十億級分布式向量數(shù)據(jù)庫能力

    火山引擎云搜索服務(wù)升級云原生新架構(gòu);提供數(shù)十億級分布式向量數(shù)據(jù)庫能力

    從互聯(lián)網(wǎng)發(fā)展伊始,搜索技術(shù)就綻放出了驚人的社會和經(jīng)濟(jì)價(jià)值。隨著信息社會快速發(fā)展,數(shù)據(jù)呈爆炸式增長,搜索技術(shù)通過數(shù)據(jù)收集與處理,滿足信息共享與快速檢索的需求。 云搜索服務(wù) ESCloud 是火山引擎提供的 完全托管在線分布式搜索服務(wù) ,兼容 Elasticsearch、Kibana 等軟

    2024年02月16日
    瀏覽(30)
  • 分布式搜索引擎——elasticsearch搜索功能

    分布式搜索引擎——elasticsearch搜索功能

    Elasticsearch提供了基于JSON的DSL (Domain Specific Language)來定義查詢。常見的查詢類型包括: 查詢所有:查詢出所有數(shù)據(jù),一般測試用。例如:match_all 全文檢索(full text)查詢:利用分詞器對用戶輸入內(nèi)容分詞,然后去倒排索引庫中匹配。例如: match_query multi_match_query 精確查詢:根據(jù)精確詞條

    2024年02月05日
    瀏覽(34)
  • 分布式搜索引擎ElasticSearch——搜索功能

    分布式搜索引擎ElasticSearch——搜索功能

    DSL查詢分類 DSL官方文檔 全文檢索查詢 精確查詢 地理查詢 復(fù)合查詢 Function Score Query function score query Boolean Query 排序 分頁 官方文檔 高亮 快速入門 match,term,range,bool查詢 排序和分頁 高亮顯示 就是在前面抽取的解析代碼中進(jìn)一步添加關(guān)于高亮的解析部分,因?yàn)閔ighlight和so

    2024年02月01日
    瀏覽(28)
  • 【分布式搜索引擎03】

    【分布式搜索引擎03】

    **聚合(aggregations)**可以讓我們極其方便的實(shí)現(xiàn)對數(shù)據(jù)的統(tǒng)計(jì)、分析、運(yùn)算。例如: 什么品牌的手機(jī)最受歡迎? 這些手機(jī)的平均價(jià)格、最高價(jià)格、最低價(jià)格? 這些手機(jī)每月的銷售情況如何? 實(shí)現(xiàn)這些統(tǒng)計(jì)功能的比數(shù)據(jù)庫的sql要方便的多,而且查詢速度非常快,可以實(shí)現(xiàn)近

    2024年02月05日
    瀏覽(39)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包