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

Elasticsearch(1)——倒排索引與HTTP操作Elasticsearch

這篇具有很好參考價值的文章主要介紹了Elasticsearch(1)——倒排索引與HTTP操作Elasticsearch。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1 前言

Elastic Stack 核心產(chǎn)品包括 Elasticsearch【存儲數(shù)據(jù)】、Kibana【展示數(shù)據(jù)】、Beats 和 Logstash【收集與傳輸數(shù)據(jù)】(也稱為 ELK Stack)等等。能夠安全可靠地從任何來源獲取任何格式的數(shù)據(jù),然后對數(shù)據(jù)進行搜索、分析和可視化。sa

Elasticsearch 是一個分布式、RESTful 風(fēng)格的搜索和數(shù)據(jù)分析引擎,能夠解決不斷涌現(xiàn)出的各種用例。作為 Elastic Stack 的核心,Elasticsearch 會集中存儲您的數(shù)據(jù),讓您飛快完成搜索,微調(diào)相關(guān)性,進行強大的分析,并輕松縮放規(guī)模。

2 Elasticsearch 安裝

  • 下載安裝包 Download Elasticsearch 下載版本7.8.0,操作系統(tǒng)為Windows

  • 下載后解壓,運行bin文件下的elasticsearch.bat命令
    Elasticsearch(1)——倒排索引與HTTP操作Elasticsearch,Elasticsearch,elasticsearch

  • elasticsearch的服務(wù)端口為 9200 \textcolor{red}{9200} 9200 瀏覽器獲得以下響應(yīng),服務(wù)正常啟動
    Elasticsearch(1)——倒排索引與HTTP操作Elasticsearch,Elasticsearch,elasticsearch

3 數(shù)據(jù)格式

Elasticsearch 是面向 文檔型 \textcolor{red}{文檔型} 文檔型的存儲數(shù)據(jù)庫。一條數(shù)據(jù)就是一個文檔。為了方便大家理解,我們將Elasticsearch里存儲文檔數(shù)據(jù)和關(guān)系型數(shù)據(jù)庫Mysql存儲數(shù)據(jù)的概念進行一個類別。索引是獨立文檔的集合體。類比于Mysql中的DataBase,Type類別與數(shù)據(jù)庫中的表,在Elasticsearch7.X中Type的概念被刪除了。每個存儲的文檔數(shù)據(jù)就是數(shù)據(jù)庫中每行,文檔中的字段信息對應(yīng)著表的具體欄位。

Elasticsearch(1)——倒排索引與HTTP操作Elasticsearch,Elasticsearch,elasticsearch

4 倒排索引

Elasticsearch 使用一種稱為 倒排索引 \textcolor{red}{倒排索引} 倒排索引的結(jié)構(gòu),它適用于快速的全文搜索。一個倒排索引由文檔 中所有不重復(fù)詞的列表構(gòu)成,對于其中每個詞,有一個包含它的文檔列表。

假設(shè)我們有兩個文檔,每個文檔的正文字段包含如下內(nèi)容:
1、The quick brown fox jumped over the lazy dog
2、Quick brown foxes leap over lazy dogs in summer

為了創(chuàng)建倒排索引,我們首先將每個文檔的正文字段,拆分成單獨的詞(我們稱它為詞條或 Tokens),創(chuàng)建一個包含所有不重復(fù)詞條的排序列表,然后列出每個詞條出現(xiàn)在哪個文檔。

詞條 文檔
quick 文檔1
lazy 文檔1 文檔2
brown 文檔1 文檔2
fox 文檔1
leap 文檔2

假如我們想想要搜索brown ,我們只需要查找包含每個詞條的倒排索引

詞條 文檔
brown 文檔1 文檔2

我們可以看到兩篇文檔中都包含brown字條,兩篇文章都被檢索出來了。
默認情況下,Elasticsearch 文檔每個字段都會被索引。如果某些字段不需要支持查詢,可以在映射中配置 “index”: false ,減少存儲空間占用,并且提升寫入速度。這部分內(nèi)容我將在后面為大家介紹。

5 常用HTTP請求操作Elasticsearch

5.1 創(chuàng)建索引

類比關(guān)系型數(shù)據(jù)庫,當(dāng)我們操作數(shù)據(jù)時,需要知道是針對哪一個數(shù)據(jù)庫。Index相當(dāng)于關(guān)系型數(shù)據(jù)庫的DB,所以需要創(chuàng)建索引??梢园l(fā)送PUT請求 h t t p : / / l o c a l h o s t : 9200 / i n d e x 1 \textcolor{red}{ http://localhost:9200/index1} http://localhost:9200/index1 去創(chuàng)建名稱為Index1的索引
Elasticsearch(1)——倒排索引與HTTP操作Elasticsearch,Elasticsearch,elasticsearch
再次向瀏覽器發(fā)送該put請求時,會被告知異常

{
    "error": {
        "root_cause": [
            {
                "type": "resource_already_exists_exception",
                "reason": "index [index1/naVrfF_oQ325n2p60qJCnA] already exists",
                "index_uuid": "naVrfF_oQ325n2p60qJCnA",
                "index": "index1"
            }
        ],
        "type": "resource_already_exists_exception",
        "reason": "index [index1/naVrfF_oQ325n2p60qJCnA] already exists",
        "index_uuid": "naVrfF_oQ325n2p60qJCnA",
        "index": "index1"
    },
    "status": 400
}
5.2 查詢索引信息

發(fā)送Get請求去獲得指定索引信息 h t t p : / / l o c a l h o s t : 9200 / i n d e x 1 \textcolor{red}{http://localhost:9200/index1} http://localhost:9200/index1
Elasticsearch(1)——倒排索引與HTTP操作Elasticsearch,Elasticsearch,elasticsearch

5.3 刪除索引

發(fā)送Delete請求去刪除指定索引信息 h t t p : / / l o c a l h o s t : 9200 / i n d e x 1 \textcolor{red}{http://localhost:9200/index1} http://localhost:9200/index1
Elasticsearch(1)——倒排索引與HTTP操作Elasticsearch,Elasticsearch,elasticsearch

5.4 創(chuàng)建/修改文檔

創(chuàng)建文檔的操作,類似與向MySQL數(shù)據(jù)庫中的表插入指定的數(shù)據(jù)信息。與之不同的是,插入的是文檔數(shù)據(jù),傳遞請求的中請求體為Json數(shù)據(jù)
發(fā)送Post請求去創(chuàng)建文檔數(shù)據(jù) h t t p : / / l o c a l h o s t : 9200 / i n d e x 1 / d o c \textcolor{red}{http://localhost:9200/index1/_doc} http://localhost:9200/index1/d?oc

index1 指定的文檔請求
_doc 文檔操作

Elasticsearch(1)——倒排索引與HTTP操作Elasticsearch,Elasticsearch,elasticsearch
創(chuàng)建文檔成功后可以返回一個標(biāo)識文檔信息的唯一id。當(dāng)創(chuàng)建時不指定id時將會隨機生成一個字符串。也可以在創(chuàng)建文檔時指定文檔的唯一標(biāo)識??梢园l(fā)送Put請求去創(chuàng)建文檔數(shù)據(jù) h t t p : / / l o c a l h o s t : 9200 / i n d e x 1 / d o c / 101 \textcolor{red}{http://localhost:9200/index1/_doc/101} http://localhost:9200/index1/d?oc/101 ,指定id為101
Elasticsearch(1)——倒排索引與HTTP操作Elasticsearch,Elasticsearch,elasticsearch
PUT 和 POST 請求的區(qū)別:

  1. POST理解為新增或更新,PUT理解為更新。因此,在PUT中需要指定id。而POST的話,不指定id(ES會自動生成文檔id),指定id(有則修改,無則創(chuàng)建)。
  2. PUT會將新的json值完全替換掉舊的;而POST方式不傳 _update 參數(shù)新的json值完全替換掉舊的,帶_update 參數(shù)可以更新相同字段的值,其他數(shù)據(jù)不會改變,新提交的字段若不存在則增加。
  3. PUT操作是冪等的,POST操作不是冪等的。所謂冪等是指不管進行多少次操作,結(jié)果都一樣。比如用PUT修改一篇文章,然后在做同樣的操作,每次操作后的結(jié)果并沒有什么不同,當(dāng)我們多次發(fā)出同樣的POST請求后,其結(jié)果是創(chuàng)建了若干的資源【不指定文檔id的情形】。

再次向Elasticsearch服務(wù)器發(fā)送Put請求時,將會是一個修改文檔的請求
Elasticsearch(1)——倒排索引與HTTP操作Elasticsearch,Elasticsearch,elasticsearch

5.5查找文檔

根據(jù)文檔 i d 查詢指定的文檔數(shù)據(jù) h t t p : / / l o c a l h o s t : 9200 / i n d e x 1 / d o c / 1001 \textcolor{red}{根據(jù)文檔id查詢指定的文檔數(shù)據(jù)http://localhost:9200/index1/_doc/1001} 根據(jù)文檔id查詢指定的文檔數(shù)據(jù)http://localhost:9200/index1/d?oc/1001
這里示例查詢文檔id為1001的文檔信息
Elasticsearch(1)——倒排索引與HTTP操作Elasticsearch,Elasticsearch,elasticsearch

5.6局部修改文檔

文檔的修改分為局部的修改數(shù)據(jù)和完全覆蓋兩種模式,完全覆蓋修改的方式之前在使用PUT接口和POST接口 【攜帶id】 http://localhost:9200/index1/_doc/101已經(jīng)介紹。
局部修改可以發(fā)送Post h t t p : / / l o c a l h o s t : 9200 / i n d e x 1 / u p d a t e / 101 \textcolor{red}{http://localhost:9200/index1/_update/101 } http://localhost:9200/index1/u?pdate/101 _update 文檔修改操作
Elasticsearch(1)——倒排索引與HTTP操作Elasticsearch,Elasticsearch,elasticsearch

5.7刪除文檔

根據(jù)文檔id 刪除指定的文檔數(shù)據(jù),發(fā)送Delete請求 h t t p : / / l o c a l h o s t : 9200 / i n d e x 1 / d o c / 101 \textcolor{red}{http://localhost:9200/index1/_doc/101 } http://localhost:9200/index1/d?oc/101
Elasticsearch(1)——倒排索引與HTTP操作Elasticsearch,Elasticsearch,elasticsearch

5.8分頁查詢

Post請求 h t t p : / / l o c a l h o s t : 9200 / i n d e x 1 / s e a r c h \textcolor{red}{ http://localhost:9200/index1/_search } http://localhost:9200/index1/s?earch _search 文檔搜索

Elasticsearch(1)——倒排索引與HTTP操作Elasticsearch,Elasticsearch,elasticsearch文章來源地址http://www.zghlxwxcb.cn/news/detail-521065.html

到了這里,關(guān)于Elasticsearch(1)——倒排索引與HTTP操作Elasticsearch的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【Elasticsearch專欄 01】深入探索:Elasticsearch的正向索引和倒排索引是什么

    首先,要明確的是,Elasticsearch本質(zhì)上只使用倒排索引來實現(xiàn)高效的搜索和查詢功能。正向索引雖然在某些數(shù)據(jù)庫和搜索系統(tǒng)中被提及,但在Elasticsearch的上下文中并不是一個核心概念。下面我詳細解釋倒排索引,并簡要提及正向索引以提供對比。 倒排索引是Elasticsearch中用于實

    2024年02月22日
    瀏覽(31)
  • 《面試1v1》ElasticSearch倒排索引

    《面試1v1》ElasticSearch倒排索引

    ?? 作者簡介:王哥,CSDN2022博客總榜Top100??、博客專家?? ?? 技術(shù)交流:定期更新Java硬核干貨,不定期送書活動 ?? 王哥多年工作總結(jié):Java學(xué)習(xí)路線總結(jié), 點擊 突擊面試 ?? 數(shù)十萬人的面試選擇: 面試說人話系列《面試1v1》 我是 javapub,一名 Markdown 程序員從?????,

    2024年02月13日
    瀏覽(46)
  • ElasticSearch:全文檢索及倒排索引原理

    ElasticSearch:全文檢索及倒排索引原理

    首先介紹一下結(jié)構(gòu)化與非結(jié)構(gòu)化數(shù)據(jù): 結(jié)構(gòu)化數(shù)據(jù)將數(shù)據(jù)具有的特征事先以結(jié)構(gòu)化的形式定義好,數(shù)據(jù)有固定的格式或有限的長度。典型的結(jié)構(gòu)化數(shù)據(jù)就是傳統(tǒng)關(guān)系型數(shù)據(jù)庫的表結(jié)構(gòu),數(shù)據(jù)特征直接體現(xiàn)在表結(jié)構(gòu)的字段上,所以根據(jù)某一特征做數(shù)據(jù)檢索很直接,速度也比較快

    2024年02月14日
    瀏覽(22)
  • Elasticsearch 如何做到快速檢索 - 倒排索引的秘密

    Elasticsearch 如何做到快速檢索 - 倒排索引的秘密

    這里我們就引出了一個概念,也是我們今天的要剖析的重點 -?倒排索引。也是 ES 的核心知識點。 如果你了解 ES 應(yīng)該知道,ES 可以說是對 Lucene 的一個封裝,里面關(guān)于倒排索引的實現(xiàn)就是通過 lucene 這個 jar 包提供的 API 實現(xiàn)的,所以下面講的關(guān)于倒排索引的內(nèi)容實際上都是

    2023年04月08日
    瀏覽(18)
  • 【Elasticsearch專欄 02】深入探索:Elasticsearch為什么使用倒排索引而不是正排索引

    Elasticsearch選擇使用倒排索引而不是正排索引,主要是基于倒排索引在處理全文搜索和大規(guī)模數(shù)據(jù)集時的優(yōu)勢。下面將詳細解釋為什么Elasticsearch更傾向于使用倒排索引,并提供一些簡化的代碼片段來說明這兩種索引結(jié)構(gòu)的基本差異。 正排索引是一種將文檔映射到其包含的單詞

    2024年02月22日
    瀏覽(32)
  • Elasticsearch中倒排索引、分詞器、DSL語法使用介紹

    Elasticsearch中倒排索引、分詞器、DSL語法使用介紹

    ?? 簡介:java系列技術(shù)分享(??持續(xù)更新中…??) ?? 初衷:一起學(xué)習(xí)、一起進步、堅持不懈 ?? 如果文章內(nèi)容有誤與您的想法不一致,歡迎大家在評論區(qū)指正?? ?? 希望這篇文章對你有所幫助,歡迎點贊 ?? 收藏 ?留言 ?? ?? 更多文章請點擊 簡介及安裝請查看這篇 :Elasticsea

    2024年02月11日
    瀏覽(27)
  • 【Elasticsearch專欄 03】深入探索:Elasticsearch的倒排索引是如何提高搜索效率的?

    倒排索引之所以能夠提高搜索效率,關(guān)鍵在于其獨特的構(gòu)建方式和數(shù)據(jù)結(jié)構(gòu)設(shè)計。下面,我將對倒排索引的工作原理進行深層解讀,并闡述其如何顯著提高搜索效率。 分詞與索引構(gòu)建 首先,搜索引擎會對文檔內(nèi)容進行分詞處理,將文本拆分成獨立的單詞或詞組。然后,為每

    2024年02月22日
    瀏覽(29)
  • 尚硅谷ES基礎(chǔ) - RESTful & JSON&基本概念&倒排索引&HTTP

    尚硅谷ES基礎(chǔ) - RESTful & JSON&基本概念&倒排索引&HTTP

    RESTful JSON REST 指的是一組架構(gòu)約束條件和原則。滿足這些約束條件和原則的應(yīng)用程序或設(shè)計就是 RESTful。 Web 應(yīng)用程序最重要的 REST 原則是,客戶端和服務(wù)器之間的交互在請求之間是無狀態(tài)的。從客戶端到服務(wù)器的每個請求都必須包含理解請求所必需的信息。如果服務(wù)器在請求

    2024年02月21日
    瀏覽(21)
  • 簡述Elasticsearch(ES)是什么 全文搜索概念 (倒排索引 管理文檔)

    簡述Elasticsearch(ES)是什么 全文搜索概念 (倒排索引 管理文檔)

    今天 我們來說說 NoSql 中的 Elasticsearch 大家基本都叫它 ES 官方介紹 它是一個分布式全文搜索引擎 分布式是一個系統(tǒng)架構(gòu)的概念 而 全文搜索引擎 全文搜索 可以說基本大家天天都在接觸 就比如 我們京東購物 想買什么東西 在全文輸入框中搜索 它就會在所有物品中 幫你找出需

    2024年01月25日
    瀏覽(34)
  • 深入了解Elasticsearch搜索引擎篇:倒排索引、架構(gòu)設(shè)計與優(yōu)化策略

    深入了解Elasticsearch搜索引擎篇:倒排索引、架構(gòu)設(shè)計與優(yōu)化策略

    倒排索引是一種用于快速檢索的數(shù)據(jù)結(jié)構(gòu),常用于搜索引擎和數(shù)據(jù)庫中。與傳統(tǒng)的正排索引不同,倒排索引是根據(jù)來建立索引,而不是根據(jù)文檔ID。 倒排索引的建立過程如下:首先,將每個文檔拆分成一系列的或詞項,然后建立一個詞項到文檔的映射。對每個關(guān)

    2024年02月12日
    瀏覽(40)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包