實現倒排索引

2021-08-01 17:31:41 字數 1306 閱讀 7578

倒排索引就是反向索引,一般索引指的是根據記錄位置來查詢值,而倒排索引的原理是:根據屬性的值來查詢記錄位置

比如說,現在有這些文章以及文章中含有的單詞。

以英文為例,下面是要被索引的文字:

文字0    - "it is what it is"

文字1 - "what is it"

文字2 - "it is a banana"

我們就能得到下面的反向檔案索引:

// 反向索引

"a":

"banana":

"is":

"it":

"what":

檢索的條件」what」, 「is」 和 「it」 將對應這個集合: , , 。

那麼,同時含有這三個檔案的文件就是上面的幾個檔案的交集,也就是0和1號是有這兩個檔案裡面是有」what」, 「is」 和 「it」 三個單詞的。

#include 

#include

#include

#include

#include

#include

using

namespace

std;

unordered_map

>> invertedindex(vector

> vec_vec)

else

}++no;

} return ret_map;

}int main()

; vector

vec2;

vector

vec3;

vector

> vec_vec;

unordered_map

>> ret_map =

invertedindex(vec_vec);

for(auto it : ret_map)

cout

<<"]"

0;}

輸出:

[liboyang@localhost test]$ g++ invertedindex.cpp -std=c++11

[liboyang@localhost test]$ ./a.out

what : [ 1

0 ]a : [ 2 ]

is : [ 2

10 ]

banana : [ 2 ]

it : [ 2

10 ]

倒排索引C 實現

file3 單詞1,單詞a,單詞3,單詞d.那麼建立的倒排索引就是這個樣子 單詞1 file1,file3 單詞2 file1 單詞3 file1,file3 單詞a file2,file3 下面是我對於倒排索引的乙個簡單的實現。該程式實現了某目錄下的檔案單詞統計,並建立了倒排索引。標頭檔案 inv...

倒排索引C 實現

以字或者詞為關鍵字進行索引 正排索引是從文件到關鍵字的對映,已知文件求關鍵字。倒排索引是從關鍵字到文件的對映,已知關鍵字求文件。使用了倒排,當然具體的實現會更加複雜,這裡只是簡單實現倒排索引 inverted index 具體主要做了,把多個文件中的單詞切出來 為了簡單起見直接空格分開單詞 然後建立...

MapReduce倒排索引簡單實現

倒排索引 倒排索引是文件檢索系統中最常用的資料結構,被廣泛的應用於全文搜尋引擎。它主要用來儲存某個單詞 或片語 在乙個文件或一組文件中的儲存位置的對映,即提供了一種根據內容來查詢文件的方式,由於不是根據文件來確定文件所包含的內容,而是進行了相反的操作,因而被稱為倒排索引。例如 input 輸入有三個...