XERJ.AI· THE AI-NATIVE SEARCH ENGINE· 2026

XERJ.
ONE ENGINE.
ZERO STACK.

The unified search engine for AI — connect it, run xerj autoindex, and it works: any folder becomes typed, queryable indices — zero configuration. Give agents long-term memory, semantic search & RAG, hybrid BM25 + vector retrieval, auto-embedding on ingest, and anomaly detection — no bolt-on vector database, no glue code. One binary that speaks the Elasticsearch wire protocol, released under Apache‑2.0: no lock-in, no SSPL, no per-feature gates. Yours to run, fork, and build on.

XERJ · LIVE DEMO
XERJ · LATENCY · PER MODEL · LIVE
OPUS 4.61.72KSONNET 4.6969.91HAIKU 4.5395.65GPT-51.09KGEMINI 31.31K
axonometric · 5 series · min 223.03 · max 1.73K

Five LLM models tracked in real time. P95 latency, 60-second window. Ribbon depth encodes model generation. This is one XERJ query — not five dashboards stitched together.

01·POINT XERJ AT A FOLDER · ZERO CONFIG

ONE COMMAND.
ANY FOLDER.

The fastest way to make data useful to an AI agent is to not write a pipeline at all. xerj autoindex <folder> — a subcommand of the same binary — walks the tree, sniffs every file's format by content (extensions are never trusted) across 13 format families — JSONL, JSON, dialect-sniffed CSV, logs, SQL dumps, SQLite, PDF, DOCX, HTML, XML, YAML, plain text, gzip — infers field types and date encodings from the data itself, writes explicit mappings, and streams everything in with idempotent IDs. Junk files are recorded, never fatal. It ends by writing a catalog index — the data map — so the agent's first question, "what is even in here?", is answered by the engine. Real captured run:

$ xerj autoindex ./sample
autoindex: 4 files (0 MB) under /tmp/xerj-pubpass/sample
phase A: sniffing + sampling 4 files…
phase A: 3 datasets inferred, 1 junk/skipped files
phase B: indexing 3 files with 8 workers → http://localhost:9280

done in 0.2s — 3 datasets, 5801 records live, 0 junk records, 1 junk/skipped files
  ax-logs                                        5000 docs
  ax-exports                                      800 docs
  ax-docs                                           1 docs

next: `xerj autoindex map --url http://localhost:9280` for the data map; search via GET /ax-*/_search
GROUND-TRUTH EXAM · 1,995 FILES / 518 MB
80/81 CHECKS
secret-manifest corpus, 25 formats · the one miss: a Shift-JIS file indexed as mojibake
518 MB → LIVE, TYPED INDICES
38.1 s
31 datasets · 2,018,398 records · ~38–51 s across runs · 33.7k rec/s end-to-end on 923 MB
RESUMABLE · IDEMPOTENT
KILL -9 SAFE
journal resume converges to identical final counts · client memory flat ~250 MB at 5× input growth

Honesty first: in a controlled 10-question exam on that 518 MB corpus, a XERJ-backed agent scored 9 correct + 1 partial vs a fair grep/python baseline's 10/10 — a tie on accuracy, not a rout. What XERJ wins is structural: a full corpus inventory in 4 API calls, sub-second aggregations over millions of rows, and uniform access to SQLite, DOCX, gzip, and decimal-comma CSV through one API — the advantages that matter at scale, over remote/API-only access, and under repeated querying. The pipeline is streaming and resumable, verified on multi-GB corpora.

THE FULL RECIPE, EVERY NUMBER TRACED TO A RUN →

02·BUILT FOR AGENTS · MEMORY · RECIPES

AGENTS ARE
THE CUSTOMER.

Every operation an agent needs is a plain HTTP call on :9200 — no SDK, no signup, no external embedding key. Store what an agent learns, recall it later by meaning (the built-in embedder is lexical hash-based — honest hybrid lexical+vector retrieval, not neural understanding). Each namespace is physically isolated, so agents never read each other's memories. Real run against an empty XERJ:

$ curl -sXPOST localhost:9200/_memory/agent-demo \
    -H 'content-type: application/json' \
    -d '{"text":"The user prefers metric units and a dark UI theme.","metadata":{"kind":"preference"}}'
{"created":true,"id":"77eff57b-e432-431c-8b49-8a16b33ab551","namespace":"agent-demo"}

$ curl -sXPOST localhost:9200/_memory/agent-demo/_recall \
    -H 'content-type: application/json' \
    -d '{"query":"what display settings does the user like?","semantic":true,"k":1}'
{"hits":[{"id":"77eff57b-e432-431c-8b49-8a16b33ab551",
          "score":0.655571460723877,
          "text":"The user prefers metric units and a dark UI theme."}],  // metadata trimmed
 "namespace":"agent-demo"}
RECIPE · FLAGSHIP Zero-config indexing

xerj autoindex <folder> — sniffed formats, inferred mappings, a self-describing data map, resumable idempotent ingest.

RECIPE Give an agent memory

The /_memory REST API — store, recall by meaning / keyword / vector, filter, forget, per-agent isolation.

DOCS All 12 recipes

First-class documentation, each validated end-to-end against a live XERJ — RAG, hybrid search, log analytics, anomaly detection, ES migration.

THE FULL AGENT SURFACE — SEVEN OPERATIONS + LLMS.TXT →

03·XERJ REPLACES THREE SYSTEMS

LOGS.
VECTORS.
AGENT MEMORY.

Every AI application writes three kinds of data. Logs for debugging. Vectors for retrieval. Memory for context. Today, teams glue three systems together — Elasticsearch for text, Pinecone for vectors, a custom store for agent state — each with its own operator, billing line, and failure mode. XERJ collapses them into one engine because under the surface they're the same problem: find the few records that matter, fast, cheap, and now.

XERJ · RETRIEVAL INTENT CLUSTERS · 48H · UMAP 2D
······························································································································································································································································································································································································································································································································································································································································································································································································································································ RAG RETRIEVALCODE ASSISTDOC Q&AEXTRACT JSONCLASSIFYAGENT TOOL
UMAP · 830 embeddings · 6 clusters

830K real queries clustered by intent in XERJ's embedding space. RAG retrieval dominates. Code-assist forms a tight cluster. Classify + extract-json separate cleanly — all queryable from a single index.

04·XERJ NATIVE HYBRID SEARCH

ONE PASS.
ONE HOP.

Hybrid search in XERJ isn't an orchestration layer stitching two systems together. BM25 and vector kNN share one query tree, one cost model, one execution pass — with proper RRF score fusion built in, not bolted on. The service graph shows real traffic: api-gateway fans into five indexes without the double-call to ES + Pinecone.

XERJ · SERVICE → INDEX · FLOWS · 1H
api-gateway auth app search embed-svc fts-index vector-index agent-memory logs metrics SOURCE TARGET
11 flows · 55 · rps
05·XERJ COST VISIBILITY

WATCH THE
MONEY MOVE.

Spend shouldn't be a monthly surprise. XERJ encodes cost directly alongside traffic — a 13:00 weekday spike in model spend is visible the moment it happens, not in the next finance review. Heatmap: weekday × 2-hour windows, opacity = $/hour.

XERJ · SPEND · WEEKDAY × 2H · LAST 7 DAYS
 000204060810121416182022
MON$2$2$13$43$89$135$169$167$141$95$54$16
TUE$2$2$9$56$95$148$165$170$141$108$44$2
WED$2$2$2$54$91$148$166$160$135$102$59$11
THU$2$2$9$47$104$139$167$165$131$104$59$14
FRI$2$2$4$48$101$132$162$153$148$99$56$7
SAT$2$2$6$19$38$58$85$81$65$46$21$4
SUN$2$2$6$18$40$61$74$71$64$52$18$3
XERJ.AI·OPEN THE PLAYGROUND

TRY IT
RIGHT NOW.

Leave a work email and the live dashboards open immediately — explore the query surface, vector search, aggregations, and agent memory on real data. Stored only in your browser: no funnel, no sequenced drip, no "journey."

We keep your email to follow up about XERJ — nothing else. No spam, no reselling.
06·SUPPORTING EVIDENCE · XERJ vs ELASTICSEARCH 8.13.4
FULL QUERY MATRIX · CLOSED-LOOP · CACHE OFF
42W · 28L · 12T
vs live ES 8.13.4 · losses published too · demo/playbooks/FULL_MATRIX_SCORECARD_2026-07-10.md
XERJ vs ES · BULK INGEST
1.54× FASTER
same corpus, closed-loop · acked deletes survive SIGTERM/SIGKILL restarts (11/11 crash cells)
XERJ vs ES · INDEX ON DISK
1.23× SMALLER
index on-disk 9.85 MB vs ES 12.07 MB, same corpus · demo/playbooks/FULL_MATRIX_SCORECARD_2026-07-09.md

The engine numbers back the use cases up — they are not the product. kNN recall was a 1.00 tie (both exact on this setup). FULL BENCHMARK METHODOLOGY + REPRODUCTION →

07·INSIDE XERJ

ONE BINARY.
NO JVM.
NO COMPROMISES.

XERJ is written in Rust and ships as a single static binary. No JVM to tune, no sidecars to deploy, no cluster coordinator to install. The query planner, the vector index, the ingestion pipeline, the embedded Raft consensus, and the HTTP server all live in the same process.

Query types
38 variants including native hybrid BM25 + kNN fusion — more than most dedicated vector databases
Aggregations
Metric + bucket + pipeline agg families · terms are ~1.15× faster than ES because histograms are pre-computed at ingest
Vector index
Exact (brute-force) kNN at query time — every candidate scored, recall 1.00, no approximate traversal to tune · cosine / L2 / dot · SQ8 / SQ4 / binary quantization · max 16,384 dims (ES caps at 4,096)
AI-native
Auto-embed on ingest with a built-in lexical embedder (optional external proxy) · agent-memory store · anomaly detection · semantic search at query time
Storage
Columnar · 9 domain-aware encodings · ZSTD · 1.20× smaller than ES on the benchmark corpus · mmap'd segments
Cluster
Embedded Raft consensus · metadata replication · region-based partitioning · no ZooKeeper / etcd
GET XERJ