• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

rpatil524 / txtai / 22147478797
100%

Build:
DEFAULT BRANCH: master
Ran 19 Feb 2026 05:05AM UTC
Jobs 1
Files 250
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

18 Feb 2026 02:22PM UTC coverage: 99.571% (-0.4%) from 100.0%
22147478797

push

github

web-flow
Add log-odds conjunction fusion for BB25 hybrid search (#1041)

* Add log-odds conjunction fusion for BB25 hybrid search

BB25 normalization outputs calibrated probabilities, but the existing
hybrid fusion uses convex combination which discards the Bayesian
probability semantics. This causes BB25 to regress on 4/5 BEIR datasets.

Add log-odds conjunction fusion (from "From Bayesian Inference to Neural
Computation") that correctly combines probability signals in logit space
with per-query dynamic calibration for dense cosine scores.

- scoring/normalize.py: Extract Bayesian method check into isbayes()
- scoring/base.py: Add default isbayes() returning False
- scoring/tfidf.py: Add isbayes() delegating to normalizer
- search/base.py: Add logodds(), convex(), rrf() fusion methods;
  dispatch based on isbayes()

BEIR nDCG@10 results (BB25+LogOdds vs Default):
  arguana +2.23, fiqa +2.03, scidocs +0.62, scifact +1.33, nfcorpus -1.96

* Extract Hybrid class for score fusion strategies

Move logodds, convex, and rrf fusion methods from Search into
a dedicated Hybrid class, following the same pattern as Normalize.

* Fix coding convention issues in Hybrid class for CI

- Fix black formatting: remove unnecessary parentheses, remove spaces around **
- Fix pylint too-many-branches: extract calibrate() method from logodds()
- Fix pylint unused-variable: rename score to _ in rrf()

39 of 80 new or added lines in 6 files covered. (48.75%)

9510 of 9551 relevant lines covered (99.57%)

1.0 hits per line

Uncovered Changes

Lines Coverage ∆ File
40
41.18
src/python/txtai/embeddings/search/hybrid.py
1
97.5
-2.5% src/python/txtai/scoring/base.py
Jobs
ID Job ID Ran Files Coverage
1 22147478797.1 19 Feb 2026 05:05AM UTC 250
99.57
GitHub Action Run
Source Files on build 22147478797
  • Tree
  • List 250
  • Changed 5
  • Source Changed 0
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 48f0962a on github
  • Prev Build on master (#22085587527)
  • Next Build on master (#22159604896)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc