Lucene 8 の Top-k クエリプロセッシング最適化(1) 導入編 の続きです。本エントリでは,OR クエリの性能上の問題点を説明してから,それを解決するアルゴリズムである MaxScore およびその改良版 について紹介します。 同じ内容は 転置インデックスとTop k-query に詳しいので併せて参照してください。 転置インデックス走査と Disjunction (OR) クエリの問題点 (Lucene/Solr/Elasticsearch のアーキテクチャを少しでも学んだことがある方はご存知のように,)Lucene は転置インデックス方式を採用しており,検索語 (term) ごとにドキュメント IDのリスト (posting list) を持っています。このとき,ドキュメント ID の並べ方はいくつか考えられますが,圧縮性能の良さなどから ID 昇順で並べることが多く,Lu