検索エンジン自作入門/ wiserのPython移植(5)

今回は、書籍のページ順と前後しますが、ふたつのポスティングリストのマージを行うmerge_postings です。書籍のページは80ページです。

引数は、マージするポスティングリストふたつです。

merge_postingsは、document_id の小さい方のポスティングを選んで結果のリストにマージしていくというC言語版の処理を、ジェネレータ関数のnext_pl_entry を呼び出しながら行っていく作りにしてあります。

ジェネレータをきちんと使ったことがなかったのですが、今回勉強になりました。繰り返しをスッキリ書けてよいですね。

次回は、今日作った関数を呼び出す merge_inverted_index と update_postings です。メモリ上のテンポラリ転置インデックス同士や、ストレージ上の本体の転置インデックスとをマージします。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です