全文検索エンジンメモ
検索の種類
Suffix型
- 事前に全てのドキュメントを検索可能な構造に変換し、メモリにすべてのせ探す方法
- Trie、Suffix Array/Treeなど
- PFIのSedue
- 圧縮したSuffixArrayを用いる
転置インデックス型
- 事前に全てのドキュメントについて索引データを準備し、それを使って探す方法
- 索引を探すだけなので高速に処理ができるが、事前準備が必要
- 本の後ろの索引からページを探すような感じ
- ドキュメントが変更されたらインデックスの情報も更新しなくてはいけない
- ドキュメントからの索引用単語の選び方によっては検索漏れが発生する
ドキュメントから索引用の単語抽出
各ドキュメントから索引用の単語を抽出する方法は以下がある。
辞書を使う方法
- 辞書に登録されている単語について、ドキュメントにその単語があるかどうかで判断
- キーワードリストなど
転置インデックスが保持する情報
索引用単語に対して何を保持しておくかは、以下がある。
転置インデックス自体はkey-valueストアなどでも保持できる。
文書IDのみ保持
- 「天気 -> 1,3,5」など