Okapi BM25 (Best Matching 25) ist eine Ranking-Funktion, die Dokumente nach Relevanz für eine Suchanfrage sortiert. Sie stammt aus dem probabilistischen Retrieval-Modell von Stephen Robertson und Karen Spärck Jones aus den 1970er- und 1980er-Jahren; die Bezeichnung BM25 bezieht sich auf die 25. Iteration der BM-Familie. BM25 ist der Standard-Ranker in Lucene, Elasticsearch und SQLite FTS5.

Die Kernidee

Ein Dokument bekommt einen Score, der aus drei Teilen besteht: der Inverse Document Frequency (seltene Begriffe sind wertvoller), der Termfrequenz (mehr Vorkommen = relevanter) und einer Längennormalisierung (lange Dokumente werden nicht automatisch bevorzugt). Zwei Parameter steuern das Verhalten:

  • k1 (Standard 1,2): Termfrequenz-Sättigung. Nahe 0 zählt nur, ob ein Wort vorkommt; größere Werte belohnen wiederholte Treffer.
  • b (Standard 0,75): Stärke der Längennormalisierung. 0 schaltet sie aus, 1 wendet sie voll an.

In der Praxis

BM25 ist die übliche Wahl für die lexikalische Seite der Hybridsuche: Der BM25-Score wird mit dem Score einer Vektorsuche kombiniert, häufig per Top-k-Auswahl und Reranking. Zusammen mit der Volltextsuche bildet BM25 das Fundament des Information Retrieval.