latent.rag.bm25¶
BM25 keyword retriever using rank-bm25.
Classes¶
BM25Retriever¶
BM25Retriever(k1: float = 1.5, b: float = 0.75, tokenizer: Tokenizer | None = None, bm25_tokenizer: str | None = None)
BM25Okapi keyword retriever.
Parameters¶
k1:
BM25 term-frequency saturation parameter.
b:
BM25 document-length normalisation parameter.
tokenizer:
Optional custom tokenizer (str) -> list[str]. When None
the default whitespace/punctuation splitter is used. Pass a
language-aware tokenizer (e.g. Hebrew prefix stripper) to improve
recall for morphologically rich languages.
bm25_tokenizer:
Named tokenizer from TOKENIZER_REGISTRY (e.g. "default",
"hebrew"). Takes precedence over tokenizer when set.
Methods¶
BM25Retriever.add_chunks¶
Add chunks to the existing index (rebuilds with accumulated docs).
BM25Retriever.add_texts¶
Index plain texts (builds content-based IDs).
BM25Retriever.delete_collection¶
Clear the index.
BM25Retriever.index¶
Build (or rebuild) the BM25 index from chunks.
BM25Retriever.indexed¶
Whether the index has been built.
BM25Retriever.search¶
Return top-k chunks by BM25 score.
BM25Retriever.search_multi¶
Search with multiple queries, deduplicate by ID, return top-k.
BM25Retriever.search_with_threshold¶
Return top-k chunks with score >= threshold.