PISA — 上流に採用された貢献

PISA にマージされた型安全性の refactor を、高性能検索アーキテクチャ、メンテナの指針、貢献証拠とともに示します。

採用された貢献と指針

私は pull request #641 を通じ、PISA の上流検索エンジンへ貢献しました。query algorithm が WAND data を必要とするか表していた boolean を、scoped enum WandDataRequired::{Yes, No} に置き換え、command-line mapping、requirement check、test を更新しました。runtime behavior は変えず、誤用しにくく call site が自己説明的になる変更です。

この作業はメンテナ Michał Siedlaczek の issue #634 を実装したものです。彼は scoped YesNo命名を確認し、merge 前の検証記録を確認して、テスト済みパッチを上流 commit ae8cc33としてマージしました。これはメンテナ主導のオープンソース作業であり、学術的な指導関係ではありません。

PISA の機能

PISA は、大規模テキスト集合の indexing、検索アルゴリズムの実行、情報検索実験のための高性能 C++ プラットフォームです。複数の compressed-index 形式、document reordering と sharding、WAND statistics、各種 query-processing strategy、研究向け command-line tools を備えます。

上流の公式 indexing-pipeline 図を正確な commit と Git blob に固定し、ローカルで正規化したものです。合成プロジェクト画像は使用していません。

原理と構成

Indexing pipeline は raw collection を、文書ごとの token 順序を保持する forward index に変換し、term から document への posting list を持つ inverted index に反転します。document ID の reorder や shard 化も可能です。選択した codec が inverted index を圧縮し、追加工程で動的 pruning 用の WAND statistics を生成します。Query processor は index、scorer、exhaustive、WAND、block-max WAND などの algorithm を組み合わせ、安定した top-k を返します。貢献した enum は、この構成境界で各 algorithm の WAND-data 要件を明示します。

証拠と帰属

カタログでは私のリポジトリを fork と表示します。default branch に上流より ahead の commit はありません。採用された著者性の根拠は、上記の上流 PR と merge commit です。