
全文検索エンジンの仕組み - 転置インデックスとBM25を実装して確かめる
約41分
全文検索エンジンの内部を、動くPythonコードと実測値で解説します。転置インデックスとposting listの構造、アナライザによるトークナイズ、TF-IDFの限界とBM25のk1・bが持つ意味、Lucene BM25Similarityの実装上の式、delta+VByteによるposting list圧縮の効果、Luceneのセグメント不変性とマージ・近リアルタイム検索、日本語における形態素解析とN-gramのトレードオフ、位置情報を使ったフレーズ検索、そしてPostgreSQL・MySQL InnoDB FULLTEXT・SQLite FTS5とLIKEの違いまで、Apache Lucene公式javadocと各DBの公式ドキュメントを一次ソースに整理します。