BM25Engine is a stateless C# External Logic component for OutSystems Developer Cloud (ODC). It adds native BM25 lexical search scoring to an ODC RAG pipeline without any external search service dependency.
Semantic vector search encodes meaning. It fails silently when a query contains an exact identifier: an error code, a field name, a version string. BM25Engine solves that gap. It scores chunks by term frequency and rarity, not semantic proximity.
Three Server Actions are exposed to ODC:
TokenizeText
IndexChunk
ScoreQuery
No NuGet dependencies. No outbound HTTP calls. No shared mutable state between calls. Built against .NET 8.0.
TokenizerVersion
RecomputeBM25Stats
BM25Stats
Upgraded from .NET 8.0 to .NET 10.0
https://opensource.org/licenses/BSD-3-Clause