10 mins 搞懂「倒排索引」

2021-07-24 17:05:05 字數 994 閱讀 9581

單詞-文件矩陣是表達兩者之間所具有的一種包含關係的概念模型,圖1展示了其含義。圖1的每列代表乙個文件,每行代表乙個單詞,打對勾的位置代表包含關係。

從縱向即文件這個維度來看,每列代表文件包含了哪些單詞,比如文件1包含了詞彙1和詞彙4,而不包含其它單詞。從橫向即單詞這個維度來看,每行代表了哪些文件包含了某個單詞。比如對於詞彙1來說,文件1和文件4中出現過單詞1,而其它文件不包含詞彙1。矩陣中其它的行列也可作此種解讀。

搜尋引擎的索引其實就是實現「單詞-文件矩陣」的具體資料結構。可以有不同的方式來實現上述概念模型,比如「倒排索引」、「簽名檔案」、「字尾樹」等方式。但是各項實驗資料表明,「倒排索引」是實現單詞到文件對映關係的最佳實現方式,所以本章主要介紹「倒排索引」的技術細節。

有了這個索引系統,搜尋引擎可以很方便地響應使用者的查詢,比如使用者輸入查詢詞「facebook」,搜尋系統查詢倒排索引,從中可以讀出包含這個單詞的文件,這些文件就是提供給使用者的搜尋結果,而利用單詞頻率資訊、文件頻率資訊即可以對這些候選搜尋結果進行排序,計算文件和查詢的相似性,按照相似性得分由高到低排序輸出,此即為搜尋系統的部分內部流程,具體實現方案本書第五章會做詳細描述。

單詞詞典是倒排索引中非常重要的組成部分,它用來維護文件集合中出現過的所有單詞的相關資訊,同時用來記載某個單詞對應的倒排列表在倒排檔案中的位置資訊。在支援搜尋時,根據使用者的查詢詞,去單詞詞典裡查詢,就能夠獲得相應的倒排列表,並以此作為後續排序的基礎。對於乙個規模很大的文件集合來說,可能包含幾十萬甚至上百萬的不同單詞,能否快速定位某個單詞,這直接影響搜尋時的響應速度,所以需要高效的資料結構來對單詞詞典進行構建和查詢,常用的資料結構包括雜湊加鍊表結構和樹形詞典結構

騎兵變步兵?10 分鐘搞明白如何在直播中去馬賽克

馬賽克 被很多人稱為是一種罪惡的發明,除了應用在某種不可明說的場景中,在直播過程中的馬賽克卻有很多技術原因,這篇文章將全方位為你解決直播中的 下馬 問題。繼 直播技術詳解 本系列會涵蓋的內容包括但不限於如下一些主題 直播卡頓 首開慢延時高 音畫不同步 馬賽克嚴重 點播拖動不准 直播發熱問題 其他問題...