ontola / ontola/atomic-server

Indexing with vectors / vector search

Open
#1,007 3 comments 0 reactions 1 assignee View on GitHub

@Polleps is already working on this.

Since Jan 29, 2026.

enhancement server
Dominant language
TypeScript
Stars
1.6k
Forks
82
Avg merge
10h 34m
Merged PRs (30d)
205

Description

LLMs have enabled a new type of search: vector search. Instead of finding a word or string, vector search turns entries and queries into vectors (arrays of numbers).

RAG search would be very useful for Atomic Assistant.

Todo

  • Internal vector store
  • Search UI uses vector search if available
  • External embedding support (call external API)
  • Internal LLM support
  • E2E tests for vector search

UseCases

  • Finding things by their semantic meaning (improved search)
  • Searching through images, videos, audio, etc. using embeddings
  • Finding relevant resources
  • Injecting context in an LLM #951

Approaches

Using sled / KV store

I don't think it's possible to do meaningful nearest-neighbor search using sled's KV / BTreeMap data structure. Searching in a KV store is done with range queries over lexicographically sorted keys, and I can't see how we can turn a high-dimensional vector in a meaningful key, where close neighbors are also lexicographically close.

Using an external vector DB

The whole point of AtomicServer is that you don't need anything else. I don't want external dependencies, I want it to be a small single binary that you can just run and it gives you all you need.

OasysDB (2026: no longer mainteined)

An embeddable vector database in rust. That's the spirit!

LanceDB

  • Embeddable vector search DB, seems to be really fast, also has full-text search (using tantivy). It's not OLTP
  • Polle tried it, it was very slow (why?)
  • Not WASM yet, maybe at some point

PolarisDB

  • Zero stars
  • Polle tried it, seems really fast
  • Unclear if WASM

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.