倒排索引是什麼

2021-09-11 20:32:00 字數 1201 閱讀 9603

倒排索引(英語:inverted index),也常被稱為反向索引、置入檔案或反向檔案,是一種索引方法,被用來儲存在全文搜尋下某個單詞在乙個文件或者一組文件中的儲存位置的對映。它是文件檢索系統中最常用的資料結構。

正排索引

正排索引是以文件的id為關鍵字,索引記錄文件中每個字的位置資訊,查詢時索引中每個文件中字的資訊直到找出所有包含查詢關鍵字的文件。

正排索引組織方法在建立索引的時候結構比較簡單,建立比較方便且易於維護;因為索引是基於文件建立的,新增文件新增索引塊即可,刪除文件找到對應的文件號直接刪除,索引的更新過程相對來說比較簡單。但是在查詢的時候需對所有的文件進行掃瞄以確保沒有遺漏,這樣就使得檢索時間大大延長,檢索效率低下。

倒排索引

倒排索引以字或詞為關鍵字進行索引,索引中關鍵字所對應的記錄表項記錄了出現這個字或詞的所有文件,乙個表項就是乙個字表段,它記錄該文件的 id 和字元在該文件**現的位置情況。

由於每個字或詞對應的文件數量在動態變化,所以倒排索引的建立和維護都較為複雜,但是在查詢的時候由於可以一次得到查詢關鍵字所對應的所有文件,所以效率高於正排索引。在全文檢索中,檢索的快速響應是乙個最為關鍵的效能,而索引建立由於在後台進行,儘管效率相對低一些,但不會影響整個搜尋引擎的效率。

假設現在有三篇文件,如何使用倒找出包含 「杏仁」 這個詞的文件。

文件id(docid)內容0

1杏仁醫生和企鵝醫生宣布合併。

2我是一名研發工程師。

文件id(docid)內容0

1杏仁醫生和企鵝醫生宣布合併。

第三部是將詞和文件 id 建立對映關係。

key(詞)

value(docid

杏仁0,1

醫生0,1患者0

溝通00企鵝

1研發2工程師

2對於對映表的 key 進行查詢是完全匹配的,所以我們通過字串二進位制進行排訊,查詢 key 通過二分查詢即可。比如查詢包含 「杏仁」 的文件的時間複雜度從 o(n) 變成 o(log(n))。

倒排索引有著廣泛的應用場景,比如搜尋引擎、大規模資料庫索引、文件檢索、多**檢索/資訊檢索領域等等。總之,倒排索引在檢索領域是很重要的一種索引機制。

什麼是倒排索引與正向索引

資料結構在搜尋引擎框架中扮演著非常重要的角色。seo顧問 瀟湘馭文 為您簡單介紹倒排索引 與正向索引 對沒有程式設計和運算元據庫經驗的站長和seo為簡單起見,我們假設有網頁1和網頁2 網頁1中僅包含一句話 廈門seo 顧問瀟湘馭文為您提供廈門seo培訓 服務。網頁2中也僅包含一句話 seo是一門藝術...

索引是什麼?

資料庫引入了索引 使用者對資料庫最頻繁的操作是進行資料查詢。一般情況下,資料庫在進行查詢操作時需要對整個表進行資料搜尋。當表中的資料很多時,搜尋資料就需要很長的時間,這就造成了伺服器的資源浪費。為了提高檢索資料的能力,資料庫引入了索引機制。有關 索引 的比喻 從某種程度上,可以把資料庫看作一本書,把...

索引是什麼

mysql索引結構 哪些情況需要建立索引 哪些情況不需要建立索引 可以簡單理解為 排好序的快速查詢資料結構 一般來說,索引本身也很大,不可能全部儲存在記憶體中,因此索引往往以索引檔案的形式儲存在磁碟上。建立 create unique index indexname on mytable colum...