How is your experience with the OutSystems Community?
8
Views
0
Comments
How I Fixed ODC Semantic Search for Exact Identifiers Using Native BM25

I published an article this week on something I kept running into while building a RAG pipeline natively inside ODC.

Semantic search handles conceptual queries well. The moment someone types ERR-BM25-003 into the search box, it returns whatever happens to be thematically adjacent. Not the actual answer.

So I went looking for why, and that led me to BM25. I built it natively inside ODC. No Elasticsearch, no Azure AI Search, no external services. The result is a hybrid retrieval pipeline that fuses BM25 lexical scoring with semantic vector search using Reciprocal Rank Fusion.

What the article covers:

  • Why semantic search has a blind spot on exact identifiers
  • How BM25 tokenization and scoring works under the hood
  • The entity model: BM25Term, BM25Posting, BM25Stats inside RAG Knowledge Base
  • The ingestion and query path built in ODC Studio
  • Test results comparing semantic vs hybrid on the same queries
  • What I have not benchmarked and where it stops

BM25Engine (C# External Logic) and the updated RAG Knowledge Base are both heading to the Forge.

Do your users search by error code, ticket number, field name? Have you hit this in your own ODC apps? I would like to hear what retrieval patterns others are using.

https://medium.com/@michael.de.guzman/your-odc-semantic-search-cannot-find-err-bm25-003-here-is-the-fix-a0d836f28312?sharedUserId=michael.de.guzman

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.