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

初識elasticsearch

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

一、前言

前一段時(shí)間在接觸一個(gè)新項(xiàng)目的時(shí)候,學(xué)習(xí)和運(yùn)用了elasticsearch(簡稱es),后期會不定期出一系列es的學(xué)習(xí)筆記內(nèi)容(從初識到安裝再到應(yīng)用部署)。
事實(shí)證明,本科做課設(shè)涉及查詢搜索的時(shí)候數(shù)據(jù)量不大,基本不需要考慮太多應(yīng)用性能的問題,但是當(dāng)運(yùn)用的數(shù)據(jù)量級別開始變成“大數(shù)據(jù)”的情況下,如果還是僅僅簡單的數(shù)據(jù)庫查找,用戶可能需要等待幾分鐘甚至更長時(shí)間去檢索到需要的數(shù)據(jù)。所以es的作用就體現(xiàn)出來了,es在微服務(wù)和分布式應(yīng)用當(dāng)中應(yīng)用很廣泛的。

二、了解ES

2.1 elasticsearch的作用

elasticsearch(es)是一款非常強(qiáng)大的開源搜索引擎,具備非常多強(qiáng)大功能,可以幫助我們從海量數(shù)據(jù)中快速找到需要的內(nèi)容。例如在以下的應(yīng)用場景中,都會使用到es

  • 在Github上搜索代碼
  • 在電商網(wǎng)站搜索商品
  • 在百度搜索答案
  • 在打車軟件搜索附近的車(具體這個(gè)為什么后續(xù)系列會詳細(xì)說明的)

2.2 ELK技術(shù)棧

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,微服務(wù),elasticsearch,大數(shù)據(jù),搜索引擎

2.3 elasticsearch和lucene

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

Lucene是一個(gè)Java語言的搜索引擎類庫,是Apache公司的頂級項(xiàng)目,由DougCutting于1999年研發(fā)。官網(wǎng)地址:https://lucene.apache.org/ 。
初識elasticsearch,微服務(wù),elasticsearch,大數(shù)據(jù),搜索引擎
elasticsearch的發(fā)展歷史:

  • 2004年Shay Banon基于Lucene開發(fā)了Compass
  • 2010年Shay Banon 重寫了Compass,取名為Elasticsearch。

ES的官網(wǎng)地址https://www.elastic.co/cn/

相比于lucene,elasticsearch具備如下優(yōu)勢:

  • 支持分布式,可水平擴(kuò)展
  • 提供Restful接口,可被任何語言調(diào)用

2.4 為什么不是其他搜索技術(shù)

答案很簡單:因?yàn)殚_源搜索引擎排名第一,大廠主流搜索引擎。
雖然在早期,Apache Solr是最主要的搜索引擎技術(shù),但隨著發(fā)展elasticsearch已經(jīng)漸漸超越了Solr,獨(dú)占鰲頭。Solr和ES的技術(shù)比較如下:初識elasticsearch,微服務(wù),elasticsearch,大數(shù)據(jù),搜索引擎
關(guān)于兩者的比較更加詳細(xì)的信息可以參考這篇文章

2.5 總結(jié)

什么是elasticsearch?

  • 一個(gè)開源的分布式搜索引擎,可以用來實(shí)現(xiàn)搜索、日志統(tǒng)計(jì)、分析、系統(tǒng)監(jiān)控等功能

什么是elastic stack(ELK)?

  • 是以elasticsearch為核心的技術(shù)棧,包括beats、Logstash、kibana、elasticsearch

什么是Lucene?

  • 是Apache的開源搜索引擎類庫,提供了搜索引擎的核心API

三、倒排索引

倒排索引的概念是基于MySQL這樣的正向索引而言的。

3.1 正向索引

什么是正向索引呢?例如給下表(tb_goods)中的id創(chuàng)建索引:
初識elasticsearch,微服務(wù),elasticsearch,大數(shù)據(jù),搜索引擎
如果是根據(jù)id查詢,那么直接走索引,查詢速度非???。

但如果是基于title做模糊查詢,只能是逐行掃描數(shù)據(jù),流程如下:

1)用戶搜索數(shù)據(jù),條件是title符合"%手機(jī)%"

2)逐行獲取數(shù)據(jù),比如id為1的數(shù)據(jù)

3)判斷數(shù)據(jù)中的title是否符合用戶搜索條件

4)如果符合則放入結(jié)果集,不符合則丟棄?;氐讲襟E1

逐行掃描,也就是全表掃描,隨著數(shù)據(jù)量增加,其查詢效率也會越來越低。當(dāng)數(shù)據(jù)量達(dá)到數(shù)百萬時(shí),就是一場災(zāi)難。

3.2 倒排索引

倒排索引中有兩個(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)索引

如圖:初識elasticsearch,微服務(wù),elasticsearch,大數(shù)據(jù),搜索引擎
倒排索引的搜索流程如下(以搜索"華為手機(jī)"為例):

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

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

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

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

如圖:
初識elasticsearch,微服務(wù),elasticsearch,大數(shù)據(jù),搜索引擎
雖然要先查詢倒排索引,再查詢倒排索引,但是無論是詞條、還是文檔id都建立了索引,查詢速度非???!無需全表掃描。

3.3 正向和倒排

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

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

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

正向索引

  • 優(yōu)點(diǎn):
    • 可以給多個(gè)字段創(chuàng)建索引
    • 根據(jù)索引字段搜索、排序速度非???/li>
  • 缺點(diǎn):
    • 根據(jù)非索引字段,或者索引字段中的部分詞條查找時(shí),只能全表掃描。

倒排索引

  • 優(yōu)點(diǎn):
    • 根據(jù)詞條搜索、模糊搜索時(shí),速度非常快
  • 缺點(diǎn):
    • 只能給詞條創(chuàng)建索引,而不是字段
    • 無法根據(jù)字段做排序

四、es的一些概念

elasticsearch中有很多獨(dú)有的概念,與mysql中略有差別,但也有相似之處。

4.1 文檔和字段

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

初識elasticsearch,微服務(wù),elasticsearch,大數(shù)據(jù),搜索引擎
而Json文檔中往往包含很多的字段(Field),類似于數(shù)據(jù)庫中的列。

4.2 索引和映射

索引(Index),就是相同類型的文檔的集合。

例如:

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

初識elasticsearch,微服務(wù),elasticsearch,大數(shù)據(jù),搜索引擎
因此,我們可以把索引當(dāng)做是數(shù)據(jù)庫中的表。

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

4.3 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ù)的同步,保證一致性

初識elasticsearch,微服務(wù),elasticsearch,大數(shù)據(jù),搜索引擎文章來源地址http://www.zghlxwxcb.cn/news/detail-779283.html

到了這里,關(guān)于初識elasticsearch的文章就介紹完了。如果您還想了解更多內(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ù)分布式搜索引擎 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)
  • ElasticSearch搜索引擎:數(shù)據(jù)的寫入流程

    ElasticSearch搜索引擎:數(shù)據(jù)的寫入流程

    (1)ES 客戶端選擇一個(gè)節(jié)點(diǎn) node 發(fā)送請求過去,這個(gè)節(jié)點(diǎn)就是協(xié)調(diào)節(jié)點(diǎn) coordinating node? (2)協(xié)調(diào)節(jié)點(diǎn)對 document 進(jìn)行路由,通過 hash 算法計(jì)算出數(shù)據(jù)應(yīng)該落在哪個(gè)分片?shard 上,然后根據(jù)節(jié)點(diǎn)上維護(hù)的 shard 信息,將請求轉(zhuǎn)發(fā)到對應(yīng)的實(shí)際處理節(jié)點(diǎn)node上 shard = hash(document_id) %

    2023年04月14日
    瀏覽(27)
  • 微服務(wù)一實(shí)用篇:分布式搜索引擎(ElasticSearch)基礎(chǔ)解析

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

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

    2024年02月16日
    瀏覽(21)
  • Elasticsearch Serverless:無服務(wù)器架構(gòu)的搜索引擎解決方案

    Elasticsearch Serverless:無服務(wù)器架構(gòu)的搜索引擎解決方案

    隨著云計(jì)算和無服務(wù)器架構(gòu)的興起,傳統(tǒng)的應(yīng)用開發(fā)方式正在經(jīng)歷革命性的變化。在這個(gè)變革的浪潮中,Elasticsearch Serverless嶄露頭角,成為構(gòu)建強(qiáng)大搜索引擎的新選擇。本文將深入探討Elasticsearch Serverless的概念、優(yōu)勢,以及如何在無服務(wù)器環(huán)境中利用它構(gòu)建靈活而高效的搜索

    2024年03月14日
    瀏覽(30)
  • 搜索引擎(大數(shù)據(jù)檢索)論述[elasticsearch原理相關(guān)]

    搜索引擎(大數(shù)據(jù)檢索)論述[elasticsearch原理相關(guān)]

    首先需要大致知道搜索引擎有大致幾類:1.全文搜索引擎 2.垂直搜索引擎 3.類目搜索引擎等。 1.全文搜索引擎:是全文本覆蓋的,百度,google等都是全文本搜索,就是我搜一個(gè)詞項(xiàng)“方圓”,那么這個(gè)詞項(xiàng)可以是數(shù)字平方的概念,可以是一個(gè)人名,可以是一首歌等,所有的相

    2023年04月08日
    瀏覽(31)
  • 基于Elasticsearch與Hbase組合框架的大數(shù)據(jù)搜索引擎

    基于Elasticsearch與Hbase組合框架的大數(shù)據(jù)搜索引擎

    本項(xiàng)目為學(xué)校大數(shù)據(jù)工程實(shí)訓(xùn)項(xiàng)目,共開發(fā)4周,答辯成績不錯(cuò)。代碼倉庫放文章尾,寫的不好,代碼僅供參考。 對于結(jié)構(gòu)化數(shù)據(jù) ,因?yàn)樗鼈兙哂刑囟ǖ慕Y(jié)構(gòu),所以我們一般都是可以通過關(guān)系型數(shù)據(jù)庫(MySQL,Oracle 等)的二維表(Table)的方式存儲和搜索,也可以建立索引。

    2024年02月09日
    瀏覽(23)
  • Elasticsearch (ES) 搜索引擎: 數(shù)據(jù)類型、動態(tài)映射、多類型(子字段)

    原文鏈接:https://xiets.blog.csdn.net/article/details/132348634 版權(quán)聲明:原創(chuàng)文章禁止轉(zhuǎn)載 專欄目錄:Elasticsearch 專欄(總目錄) ES 映射字段的 數(shù)據(jù)類型 ,官網(wǎng)文檔參考:Field data types。 下面是 ES 常用的一些基本數(shù)據(jù)類型。 字符串 類型: keyword :類型。 text :文本類型。

    2024年03月23日
    瀏覽(38)
  • elasticsearch(ES)分布式搜索引擎04——(數(shù)據(jù)聚合,自動補(bǔ)全,數(shù)據(jù)同步,ES集群)

    elasticsearch(ES)分布式搜索引擎04——(數(shù)據(jù)聚合,自動補(bǔ)全,數(shù)據(jù)同步,ES集群)

    **聚合(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月08日
    瀏覽(36)
  • 《Spring Boot 實(shí)戰(zhàn)派》--13.集成NoSQL數(shù)據(jù)庫,實(shí)現(xiàn)Elasticsearch和Solr搜索引擎

    《Spring Boot 實(shí)戰(zhàn)派》--13.集成NoSQL數(shù)據(jù)庫,實(shí)現(xiàn)Elasticsearch和Solr搜索引擎

    ?????????關(guān)于搜索引擎 我們很難實(shí)現(xiàn) Elasticseach 和 Solr兩大搜索框架的效果;所以本章針對兩大搜索框架,非常詳細(xì)地講解 它們的原理和具體使用方法, 首先 介紹什么是搜索引擎 、如何用 MySQL實(shí)現(xiàn)簡單的搜索引擎,以及Elasticseach 的 概念和接口類; 然后介紹Elasticseach

    2023年04月09日
    瀏覽(25)
  • ES搜索引擎入門+最佳實(shí)踐(九):項(xiàng)目實(shí)戰(zhàn)(二)--elasticsearch java api 進(jìn)行數(shù)據(jù)增刪改查

    ? ? ? ? 本篇是這個(gè)系列的最后一篇了,在這之前可以先看看前面的內(nèi)容: ES搜索引擎入門+最佳實(shí)踐(一)_flame.liu的博客-CSDN博客 ES搜索引擎入門+最佳實(shí)踐(二)_flame.liu的博客-CSDN博客 ES搜索引擎入門+最佳實(shí)踐(三)_flame.liu的博客-CSDN博客 ES搜索引擎入門+最佳實(shí)踐(四)_flame.liu的博客

    2024年02月12日
    瀏覽(28)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包