資訊檢索導論 第四章讀書筆記

2021-10-25 05:43:55 字數 1282 閱讀 6158

扇區是磁碟中最小的物理儲存單元

作業系統將相鄰的扇區組合在一起,形成乙個資料塊,對塊進行管理,每個塊包含2,4,8,16,32或64個扇區

資料塊是邏輯概念,而非物理概念。

乙個資料塊只能放乙個檔案,因此檔案的實際大小是小於等於所佔的儲存空間大小的。

作業系統往往以資料塊為單位進行讀寫,因此,讀取乙個位元組可能和讀取乙個資料塊耗費的時間一樣

進行磁碟讀寫時,需要將磁頭移到資料所在的磁軌,該過程耗費的時間稱為尋道時間。

尋道時間一般在5ms左右,該過程不進行資料傳輸。

為了使資料傳輸效率最大,通常連續讀取的資料塊也應該在磁碟上連續存放。

資料從磁碟傳輸到記憶體是系統總棧而不是處理器實現的,在磁碟io時仍然可以處理資料。

把頻繁訪問的磁碟資料放入記憶體中的技術稱為快取記憶體(caching)。

把記憶體中儲存讀寫塊的那塊區域稱為緩衝區(buffer)。

訪問記憶體資料比磁碟資料快很多,記憶體傳輸資料是磁碟傳輸資料速度的10倍

將文件切分為幾個大小相等的部分

將每個部分的詞項id–文件id對排序–在記憶體中排序,儘量減少磁碟隨機尋道的次數,磁碟順序讀取會比隨機尋道速度塊很多。

直到累積放滿乙個資料塊空間,將中間產生的臨時檔案寫入磁碟

合併磁碟檔案成為最終的索引—利用最小堆結構或者類似的資料結構

bsbi演算法的時間複雜度,該演算法主要在排序上耗費時間,時間複雜度為(theta(tlogt))

該演算法一般需要兩次掃瞄,一次掃瞄得到詞彙表,一次掃瞄構建倒排索引

bsbi方法需要將詞項對映成id,對於大規模文件集來說,在記憶體中難以存放。

spimi使用詞項而不是id,將每個塊的詞典寫入磁碟,對下乙個塊重新採用新的詞典

基於詞項分割的分布式索引

基於文件分割的分布式索引–實際中主要採用

從詞項到id的對映,分布式構建,一種常用的方法是對高頻詞維護一張詞項到id的對映表,複製到所有的節點上,對低頻詞直接利用詞項而不是id。

最簡單的方法是週期性的從頭重新構建

如果要求及時檢索到新文件,需要維護兩套索引,乙個是大的主索引,乙個是儲存新文件的輔助索引,輔助索引儲存在記憶體中,查詢時可以將二者的結構進行合併。

當輔助索引變得很大時,就將輔助索引合併到主索引上。

存在的問題:多個索引儲存和合併開銷較大,在合併期間搜素效率較低,同時維護的複雜性也較高,因此,

在實際中,大多數搜尋引擎選擇重新構建。

帶位置資訊的索引結構

使用者授權往往通過acl(訪問控制表)來實現,在查詢時,使用者的訪問資格往往通過直接從檔案系統返回的訪問資訊來驗證–即使這樣會降低查詢效率。

第四章 讀書筆記

源 包含了許多的東西,包括 android 應用程式的 android sdk 自帶的工具,android ndk 的源 等等,所以單從數量上來講,android linux 終端執行命令來配置 android12 repo 指令碼檔案 3 建立用於存放 android 源 的目錄 4 初始化 5a...

《資訊檢索導論》(第四章)索引構建

1 將需要建立索引的文件集分為幾個大小相同的部分 2 對每個部分的文件進行分析,建立詞項id 文件id對應關係並載入到設定好的記憶體塊中進行排序,轉換成倒排索引後的中間檔案存入磁碟 3.將中間檔案合併形成最終的索引 1 將需要建立索引的文件集分為幾個大小相同的部分 2分析其中乙個部分文件的詞項 文件...

《C primer》第四章讀書筆記

第 章 陣列和指標 現代c 程式應使用vector和迭代器代替陣列和指標,除非前二者不滿足對效率的特殊要求 陣列 陣列是由型別說明符 識別符號和維度組成的復合型別,能儲存一組某種型別的未命名物件 定義和初始化 型別說明符規定了存放於陣列中元素的型別 可使用除引用外的任意型別,包括陣列本身 陣列的陣列...