elasticsearch入門系列">elasticsearch入門系列
679
2022-05-29
前言
1.正排索引
正排索引也稱為"前向索引"。它是創建倒排索引的基礎,具有以下字段。
LocalId字段(表中簡稱"Lid"):表示一個文檔的局部編號。
WordId字段:表示文檔分詞后的編號,也可稱為"索引詞編號"。
NHits字段:表示某個索引詞在文檔中出現的次數。
HitList變長字段:表示某個索引詞在文檔中出現的位置,即相對于正文的偏移量。
是以文檔對象的唯一 ID 作為索引,以文檔內容作為記錄的結構。
2.倒排索引
倒排索引是一種以關鍵字和文檔編號結合,并以關鍵字作為主鍵的索引結構。倒排索引分為兩個部分。
第1個部分:由不同索引詞(index term)組成的索引表,稱為"詞典"(lexicon)。其中保存了各種中文詞匯,以及這些詞匯的一些統計信息(例如出現頻率nDocs),這些統計信息用于各種排名算法(Ranking Algorithm) [Salton 1989;Witten 1994]
第2個部分:由每個索引詞出現過的文檔集合,以及命中位置等信息構成,也稱為"記錄表"(posting file)或"記錄列表"(posting list)。
指的是將文檔內容中的單詞作為索引,將包含該詞的文檔 ID 作為記錄的結構。
一、Elasticsearch搜索數據原理
1.倒排索引的生成過程
文檔內容:
productTitle:蘇州街維亞大廈 productTitle:桔子酒店蘇州街店
倒排索引生成過程:
對文檔(蘇州街維亞大廈 、桔子酒店蘇州街店)進行分詞,把分詞作為索引對應文檔ID建立對應關系建立成鏈表,就能構成倒排索引。圖解如下:
有了倒排索引,能快速、靈活地實現各類搜索需求。整個搜索過程中我們不需要做任何文本的模糊匹配。
例如,如果需要在上述兩個文檔中查詢 蘇州街桔子 ,可以通過分詞后 蘇州街 查到 1、2,通過 桔子 查到 2,然后再進行取交取并等操作得到最終結果。
2.倒排索引的結構
Term Dictionary:存儲單詞和文檔Id對應關系
Postings List:記錄表,記錄文檔Id
3.倒排索引磁盤結構
4.倒排索引存儲結構
segment 段存儲結構
5.倒排索引term索引
term用來存儲分詞id
6.完整搜索過程
.NET Elasticsearch 分布式
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。