Go search engine fork adds CJK, vectors, and geo queries
A fork of bluge that adds vector fields, geospatial queries, and CJK tokenization to Go’s embeddable search stack.

What it does
Riot is a Go library for adding full-text search to an application. It builds local or in-memory indexes, then queries them with Boolean, fuzzy, range, geospatial, and KNN vector search. A companion gse package tokenizes Chinese and Japanese text so CJK content does not get mangled by naive word splitting.
The interesting bit
The project is a direct fork of the bluge indexing library, expanded with field types like IP, Geo Point, and Vector, plus aggregations backed by HyperLogLog++ and T-Digest. The gse wrapper is a thin but useful layer of glue: it swaps in a CJK-aware tokenizer and exposes query-string parsing without forcing you to rebuild the analyzer pipeline by hand.
Key highlights
- Field types cover text, numeric, date, boolean, IP, geo point, and vector
- Query surface includes term, phrase, fuzzy, regexp, wildcard, numeric/date/IP ranges, geo bounding box, geo polygon, and KNN
- BM25 scoring with pluggable similarity interfaces
- Built-in search highlighting and extendable aggregations (terms, ranges, cardinality, quantile approximation)
gsepackage provides CJK tokenization and query-string search for Chinese and Japanese
Caveats
- The repository description calls the project “Distributed,” yet the README only demonstrates local file and in-memory indexes; distributed operation is not explained.
- As a fork of
bluge, its long-term maintenance story relative to upstream is left unstated. - CJK support lives in a separate
gsewrapper rather than the core engine itself.
Verdict Worth evaluating if you need embeddable Go search with CJK text, vector fields, or geo queries. Look elsewhere if you need a standalone distributed search cluster — the README treats Riot as a library, not a server.
Frequently asked
- What is vcaesar/riot?
- A fork of bluge that adds vector fields, geospatial queries, and CJK tokenization to Go’s embeddable search stack.
- Is riot open source?
- Yes — vcaesar/riot is open source, released under the Apache-2.0 license.
- What language is riot written in?
- vcaesar/riot is primarily written in Go.
- How popular is riot?
- vcaesar/riot has 6k stars on GitHub.
- Where can I find riot?
- vcaesar/riot is on GitHub at https://github.com/vcaesar/riot.