Try it: same query, two scorers

BM25 next to a toy vector search

Six lines to search:

  1. Error: connection refused on port 9200
  2. The agent cannot reach the search server
  3. Restart the server if the index looks stuck
  4. Give a coding agent memory across sessions
  5. Port 9200 is the default search API port
  6. My assistant forgets what we discussed yesterday
BM25 score
    Toy vector, cosine

      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.