Qirvox
The search that understands what you meant to type.
Qirvox is uloggd's search engine, built by us from scratch. It finds the games when you search the catalogue: with typos, acronyms, roman numerals or half a title.
The way you actually type
Every example below is a real search and the first result it brings back today.
- Typosbayoenta 2Bayonetta 2
- Singular and pluralfive nightFive Nights at Freddy's
- Acronymsff7Final Fantasy VII
- Digits and roman numeralsdark souls 3Dark Souls III
- While you typezelda ocarThe Legend of Zelda: Ocarina of Time
- Words run togethermegamanx5Mega Man X5
- Without accentspokemon emPokémon Emerald Version
- The usual nicknamesbotwThe Legend of Zelda: Breath of the Wild
Five stages, in milliseconds
- 01
Normalises
Accents, capitals and punctuation get out of the way, the same way the catalogue reads titles.
- 02
Reads the words
It picks out sequel numbers, acronyms, and the last word, which you may still be typing.
- 03
Gathers candidates
Each word is looked up as typed, as the start of another, with typos, joined, split, or as an acronym.
- 04
Ranks
Text first: how many words matched, in what order and how surely. Only then by how popular the game is.
- 05
Delivers
It returns ids only. uloggd reads the games from PostgreSQL, with filters and permissions, as always.
379 thousand games, one index
Measured on 4,872 test searches, each with the game it should find. The time is the engine's, without the network.
- 84%
- of searches with the right game first
- 95%
- with it in the first ten
- 87%
- right with two typos in a mid-length word
- < 5 ms
- for 95% of searches, in the engine
No per-game tricks
There is no list saying "ff7" is Final Fantasy VII. The rules are general and hold for all 379 thousand games in the catalogue, including those still to come.
Measured, not guessed
Every change runs against 4,872 test searches, typed 17 different ways. If it breaks more than it fixes, it does not ship.
The title comes before fame
A popular game never jumps ahead of one that matches what you typed better. Popularity only breaks ties.
Fast, with a plan B
Written in Rust
It runs inside the site's own server, with no separate service, bound through Node-API.
An in-memory index
The whole catalogue fits in a few dozen megabytes. A search never touches the database to find anything.
One copy per replica
Each uloggd server loads its own index from a snapshot and follows the catalogue as it changes.
Never leaves you stranded
If Qirvox is still loading, slow or failing, PostgreSQL's search answers instead. You get results, not an error.
Games today. The rest tomorrow.
Qirvox was designed to search more than games: users, lists and reviews can join as new kinds of document. Found a search that should work and does not? Tell us.