← all repositories
vcaesar/riot

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.

6k stars Go RAG · Search
riot
Collecting fresh signals — velocity needs a few days of history.
star history

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)
  • gse package 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 gse wrapper 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.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.