With JavaScript off, here are BM25 scores a local XERJ node returned on these lines:
"connection refused": line 1 at 3.3007
"server unreachable": line 2 at 1.0395, line 3 at 0.9829
"agent memory": line 4 at 2.5948, line 2 at 1.0395
Runs in your browser and sends nothing. The BM25 column uses the formula and defaults in XERJ's bm25.rs (k1 1.2, b 0.75); on these six lines it matched a local XERJ v1.0.0-rc.97 node to 4 decimals for 6 test queries on 2026-10-30. The vector column is a toy: each word gets 5 hand-set numbers (network, server, memory, error, time). A real model learns hundreds of numbers per text from data.