ES中倒排索引機制

在ES的倒排索引機制中有四個重要的名詞:Term、Term Dictionary、Term Index、Posting List。

  • Term(詞條):詞條是索引里面最小的存儲和查詢單元。一段文本經過分析器分析以后就會輸出一串詞條。一般來說英文語境中詞條是一個單詞,中文語境中一個詞條是分詞后的一個詞組。

    此處涉及到分詞器,分詞器的作用是將一段文字分解為若干個詞組,不同的分詞器使用的分詞算法不同,得到的分詞結果也不同。

  • Term Dictionary(詞典):詞典是詞條的集合,顧名思義,詞典中維護的是Term。詞典一般是由文本集合中出現過的所有詞條所組成的集合。

  • Term Index(詞條索引):由于詞典中維護著文本中所有的詞條,為了在其中更快的找到某個詞條,我們為詞條建立索引。通過壓縮算法,詞條索引的大小只有所有詞條的幾十分之一,因此詞條索引可以存儲在內存中,因此可以提供更快的查找速度。

  • Posting List(倒排表):倒排表記錄的是詞條出現在哪些文檔里,以及出現的位置和頻率等信息。倒排表中的每條記錄稱為一個倒排項(posting)。

將以上概念類比到詞典中,Term相當于詞典中的詞語,Term Dictionary相當于詞典本身,Term Index相當于詞典的目錄。

舉個栗子,假設現在我們輸入系統多段文本,經過分詞器分詞后得到以下詞條:

  • elastic
  • flink
  • hadoop
  • kafka
  • spark

ES倒排索引機制

我們使用ES進行全文搜索時,如圖所示,系統首先會通過Term Index找到該Term在Term Dictionary中的位置,再通過倒排索引結構找到對應的Posting,從而定位到該詞組在文本中的位置,完成一次搜索。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/39056.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39056.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39056.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

日期時間常用功能和函數

1 time 模塊 time 模塊提供了很多與時間相關的類和函數,下面我們介紹一些常用的。 1.1 struct_time 類 time 模塊的 struct_time 類代表一個時間對象,可以通過索引和屬性名訪問值。對應關系如下所示: 索引屬性值0tm_year(年&a…

Docker容器與虛擬化技術:Docker資源控制、數據管理

目錄 一、理論 1.資源控制 2.Docker數據管理 二、實驗 1.Docker資源控制 2.Docker數據管理 三、問題 1.docker容器故障導致大量日志集滿,造成磁盤空間滿 2、當日志占滿之后如何處理 四、總結 一、理論 1.資源控制 (1) CPU 資源控制 cgroups&#xff0…

Java Vue Uniapp MES生產執行管理系統

本MES系統是一款B/S結構、通用的生產執行管理系統,功能強大! 系統基于多年離散智造行業的業務經驗組建,主要目的是為國內離散制造業的中小企業提供一個專業化、通用性、低成本的MES系統解決方案。 聯系作者獲取

Linux(進程控制)

進程控制 進程創建fork函數初識fork函數返回值寫時拷貝fork常規用法fork調用失敗的原因 進程終止進程退出碼進程常見退出方法 進程等待進程等待必要性獲取子進程status進程等待的方法 阻塞等待與非阻塞等待阻塞等待非阻塞等待 進程替換替換原理替換函數函數解釋命名理解 做一個…

re學習(32)【綠城杯2021】babyvxworks(淺談花指令)

鏈接:https://pan.baidu.com/s/1msA5EY_7hoYGBEema7nWwA 提取碼:b9xf wp:首先找不到main函數,然后尋找特殊字符串, 交叉引用 反匯編 主函數在sub_3D9當中,但是IDA分析錯了 分析錯誤后,刪除函數 創建函數 操…

【Linux】多線程1——線程概念與線程控制

文章目錄 1. 線程概念什么是線程Linux中的線程線程的優點線程的缺點線程的獨立資源和共享資源 2. 線程控制Linux的pthread庫用戶級線程 📝 個人主頁 :超人不會飛)📑 本文收錄專欄:《Linux》💭 如果本文對您有幫助&…

無腦入門pytorch系列(三)—— nn.Linear

本系列教程適用于沒有任何pytorch的同學(簡單的python語法還是要的),從代碼的表層出發挖掘代碼的深層含義,理解具體的意思和內涵。pytorch的很多函數看著非常簡單,但是其中包含了很多內容,不了解其中的意思…

SpringBoot復習:(46)全局的bean懶加載是怎么實現的?

在application.properties中配置: spring.main.lazy-initializationtrue在運行SpringApplication的run方法時,代碼如下: 其中調用了prepareContext,prepareContext代碼如下: 當在配置文件中配置了spring.main.lazy-initializat…

JavaScript實現在線Excel的附件上傳與下載

摘要:本文由葡萄城技術團隊于CSDN原創并首發。轉載請注明出處:葡萄城官網,葡萄城為開發者提供專業的開發工具、解決方案和服務,賦能開發者。 前言 在本地使用Excel時,經常會有需要在Excel中添加一些附件文件的需求&am…

Clickhouse基于文件復制寫入

背景 目前clickhouse社區對于數據的寫入主要基于文件本地表、分布式表方式為主,但缺乏大批量快速寫入場景下的數據寫入方式,本文提供了一種基于clickhouse local 客戶端工具分布式處理hdfs數據表文件,并將clickhouse以文件復制的方式完成寫入…

解決并發沖突:Java實現MySQL數據鎖定策略

在并發環境下,多個線程同時對MySQL數據庫進行讀寫操作可能會導致數據沖突和不一致的問題。為了解決這些并發沖突,我們可以采用數據鎖定策略來保證數據的一致性和完整性。下面將介紹如何使用Java實現MySQL數據鎖定策略,以及相關的注意事項和最…

開源低代碼平臺Openblocks

網友 HankMeng 想看低代碼工具,正好手上有一個; 什么是 Openblocks ? Openblocks 是一個開發人員友好的開源低代碼平臺,可在幾分鐘內構建內部應用程序。 傳統上,構建內部應用程序需要復雜的前端和后端交互,…

如何保證微信小游戲存檔不丟失?

引言 微信小游戲的興起為玩家提供了一個輕松便捷的娛樂方式,然而,存檔丟失問題一直以來都是開發者和玩家關注的焦點。為了確保玩家的游戲體驗和投入能夠得到充分的保障,開發團隊需要采取一系列方法來保障微信小游戲存檔不丟失。本文將介紹一…

學習筆記十五:基于YUM文件運行POD應用

基于YUM文件運行POD應用 通過資源清單文件創建第一個Pod更新資源清單文件查看pod是否創建成功查看pod的ip和pod調度到哪個節點上假如pod里有多個容器,進入到pod里的指定容器查看pod詳細信息查看pod具有哪些標簽:刪除pod通過kubectl run創建Pod Pod資源清…

word之插入尾注+快速回到剛才編輯的地方

1-插入尾注 在編輯文檔時,經常需要對一段話插入一段描述或者附件鏈接等,使用腳注經常因占用篇幅較大導致文檔頁面內容雜亂,這事可以使用快捷鍵 ControlaltD 即可在 整個行文的末尾插入尾注,這樣文章整體干凈整潔,需…

【枚舉邊+MST+組合計數】CF1857G

Problem - 1857G - Codeforces 題意: 思路: 首先觀察一下樣例: 可以發現對于每一對點,貢獻是 s - 這對點對應的環的最大邊 1 那么這樣就有了 n^2 的做法 然后,根據慣用套路,枚舉樹上的點對問題可以轉…

Prometheus的搭建與使用

一、安裝Prometheus 官網下載地址:Download | Prometheus 解壓:tar -zxvf prometheus-2.19.2.linux-amd64.tar.gz重命名: mv prometheus-2.19.2.linux-amd64 /home/prometheus進入對應目錄: cd /home/prometheus查看配置文件&am…

淺析市面電商CRM系統|排單系統存在的不足

筆者做CRM尤其是電商CRM系統7年,相信我的分享能夠幫助大家對電商CRM有個清晰的認知。 系統本身是用來提升效率的,針對不少電商賣家或服務商,都有使用CRM系統來管理粉絲鏈接與營銷、銷售推廣等環節,來實現完整的CRM鏈路。尤其是在當…

OpenCV-Python中的圖像處理-傅里葉變換

OpenCV-Python中的圖像處理-傅里葉變換 傅里葉變換Numpy中的傅里葉變換Numpy中的傅里葉逆變換OpenCV中的傅里葉變換OpenCV中的傅里葉逆變換 DFT的性能優化不同濾波算子傅里葉變換對比 傅里葉變換 傅里葉變換經常被用來分析不同濾波器的頻率特性。我們可以使用 2D 離散傅里葉變…

2308C++對稱轉移

原文 了解對稱轉移 協程組提供了個編寫異步代碼的絕妙方法,與同步代碼一樣.只需要在合適地點加上協待,編譯器就會負責掛起協程,跨掛起點保留狀態,并在操作完成后恢復協程. 但是,最初有個令人討厭的限制,如果不小心,很容易導致棧溢出.如果想避免它,則必須引入額外同步成本,以…