Luxir Documentationdev
Luxir is a native-code search engine with full-text relevance, vector similarity, faceting, analytics, and geo search in one index. It has a JSON API over HTTP and a gRPC API. Built-in field templates mean you can start without writing a schema, and they also cover field names that show up later in your data. Writing to a new collection creates it, and one request can return the documents, facets, and statistics for a whole page of results.
New here? The Quickstart goes from an empty server to
indexed documents, full-text queries, exact counts, and streaming import and
export with curl. The features page lists everything Luxir
does today.
The main design points:
- One request returns a whole results page. Documents, facets, statistics, and hybrid fusion are named operations in the same request, all computed over the same view of the index. Counts are exact by default.
- Text and vector search work together. A vector search is just another query. It takes the same filters, applied inside the search rather than after it, and the same facets and metrics. Rank fusion combines lexical and vector results in the same request.
- Native code. No garbage collector, no heap ceiling, memory-mapped segments, and a work-stealing scheduler, so one process can use a whole machine.
Requests are structured JSON (protobuf over gRPC). Anywhere a request takes a
query, you can write a query-language string instead, and ?explain=request
shows the structured form of what you sent. Parse errors include the
position. Ingest and export both stream, with no size limit and no scroll
state, and commits are crash-safe on immutable segments.
Use Luxir
Section titled “Use Luxir”- Quickstart - a few
curlcommands to a working search. - Documents and values - field templates, explicit fields, missing values, IDs, coercion, arrays, and what comes back.
- Indexing - JSON updates, NDJSON streams of any size, commits, overwrites and deletes, field mapping, and per-document errors.
- Searching - the request shape: queries, filters, exact counts, sorting, several operations in one request, and streaming export.
- Structured query reference - every query arm, field, default, and composition rule.
- Query language - the developer’s query string: real precedence, almost no escaping, functions, and injection-safe variables.
- Schema and fields - explicit fields, templates for dynamic fields, variants and bindings, analyzers and normalizers, storage, and indexes.
- Faceting - field, range, date, and query facets; nested facets, metrics, top documents per bucket, and multi-select.
- Vector and hybrid search - exact and approximate kNN, filters inside the search, and reciprocal rank fusion.
- Geo search - points, bounding boxes, distance queries, and the dateline.
- Dates and time zones - date values, date math, civil time, and calendar buckets.
- HTTP API conventions - endpoints, framing, strict JSON, explain modes, and errors.
- gRPC API - services, streams, and how the typed surface maps onto the JSON one.
- Operating Luxir - persistence, ports, memory budgets, read-only nodes, and the current security and availability boundary.
Reference
Section titled “Reference”- Protobuf API reference - messages, fields, enums, and RPCs generated from the API definitions.
Understand or contribute
Section titled “Understand or contribute”- Architecture explains how the engine is put together and why: immutable segments, mmap, work stealing, adaptive query execution, and native vector integration.
- Vector search design covers segment overlays and the ANN execution model.
- Codebase map traces source components and request flow.
- Build setup covers toolchains, dependencies, presets, and runtime time-zone data.
- Container build provides the shared Ubuntu 22.04 compiler and dependency environment, including ASan.
- Building a release covers branches, tags, CPU tiers, validation, and binary packaging.
- Documentation covers editing the guides and regenerating the API reference.
Rule of thumb: a page that assumes a source checkout belongs in dev/ or
design/. Pages in guide/ start from a running server and a client.