BM25(Best Matching 25)とは、文書中の単語の出現頻度と文書長を考慮してクエリとの関連度をスコアリングする確率的情報検索アルゴリズムである。
BM25 は TF-IDF の考え方を拡張したランキング関数で、Elasticsearch や Apache Solr など主要な全文検索エンジンのデフォルトアルゴリズムとして長く使われてきた。「ある単語が文書中に多く出現するほど関連性が高い」という直感を、飽和関数で補正する点が特徴的だ。単語の出現回数が増えてもスコアが際限なく上がらず、一定のところで頭打ちになる。
パラメータは主に2つ。k1 は単語頻度の飽和速度を制御し、b は文書長による正規化の強さを調整する。デフォルト値(k1=1.2, b=0.75)のまま使われることが多いが、ドメイン固有のコーパスではチューニングで検索精度が改善する場合もある。
ベクトル検索(セマンティック検索)が注目される中でも、BM25 はキーワードの完全一致や専門用語の検索で依然として強い。実務では BM25 とベクトル検索を併用し、RRF(Reciprocal Rank Fusion)でスコアを統合するハイブリッド検索が定番パターンになっている。
固有名詞や型番のような「意味」よりも「文字列の一致」が重要なクエリでは、ベクトル検索単体よりも BM25 を含むハイブリッド構成が安定した結果を返す。


ハイブリッド検索とは、キーワードベースの全文検索(BM25 等)とベクトル検索(セマンティック検索)を組み合わせ、両者の長所を活かして検索精度を向上させる手法である。

テキストを頻出パターンで統合しサブワード単位に分割するアルゴリズム。LLM の入出力コストと処理速度に直結し、低リソース言語では専用語彙が不足するためバイトレベル分解が発生する。

ベクトルデータベースとは、テキストや画像を数値ベクトル(エンベディング)に変換して格納し、意味的な類似度に基づく高速検索を提供するデータベースである。


ローカル LLM / SLM 導入比較 — クラウド API に依存しない AI 活用
ナレッジグラフとベクトル検索を組み合わせ、エンティティ間の関係性を活用して検索精度を向上させる次世代RAGアーキテクチャ。