atomicdata-dev/atomic-server

Indexing with vectors / vector search

Opened this issue · 0 comments

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).

UseCases

  • Finding things by their semantic meaning (improved search)
  • 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

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