[1] [0, 1] [0, 1] Postings list [0, 1] [2, 1] [1, 1] Frequency list [0] [1, 0] gob/encoder Postings File Footer (固定長) - Postings listのバイト数 - Frequency listのバイト数 Postings list (可変長) Frequency list (可変長) binary.LittleEndian.PutUint64() Footer (固定長) - Postings listのバイト数 - Frequency listのバイト数 Postings list (可変長) Frequency list (可変長) メンズ => 0:203 ナイキ => 204:502 … Term dictionary => 語句と対応するポス ティングリストのrangeのマッピング (postings + frequency + footer) Term dictionary File
name: { “メンズ”: => 0:203, “ナイキ”: => 204:502, … } description: { “ナイキ”: => 1004:1209, … } Footer Postings list Frequency list Postings list Frequency list Footer Footer Postings list Frequency list Postings list Frequency list Footer ・・・
=> 0:203) b. ポスティングリストをファイルから読み込む c. Footerを読み込む(last 16 bytes) (postings => 0:94, frequency => 95:187) d. ポスティングリスト内のドキュメントを取得・スコアリング • 各セグメントの結果をマージ Postings File Footer (固定長) - Postings listのバイト数 - Frequency listのバイト数 Postings list (可変長) Frequency list (可変長) Footer (固定長) - Postings listのバイト数 - Frequency listのバイト数 Postings list (可変長) Frequency list (可変長) メンズ => 0:203 ナイキ => 204:502 … Term dictionary File