Vector Stores

Vector stores are responsible for storing and retrieving document embeddings. Helios Engine supports two vector stores out of the box: an in-memory store and a Qdrant store.

In-Memory Vector Store

A fast, lightweight vector store that keeps all data in memory.

#![allow(unused)]
fn main() {
use helios_engine::InMemoryVectorStore;

let vector_store = InMemoryVectorStore::new();
}

Advantages:

  • ✓ No external dependencies
  • ✓ Fast performance
  • ✓ Simple setup
  • ✓ Perfect for development and testing

Disadvantages:

  • ✗ No persistence (data lost on restart)
  • ✗ Limited by available memory
  • ✗ Not suitable for large datasets

Use Cases:

  • Development and testing
  • Demos and examples
  • Short-lived sessions
  • Prototyping

Qdrant Vector Store

A production-ready vector store using the Qdrant vector database.

#![allow(unused)]
fn main() {
use helios_engine::QdrantVectorStore;

let vector_store = QdrantVectorStore::new(
    "http://localhost:6333",
    "my_collection"
);
}

Advantages:

  • ✓ Persistent storage
  • ✓ Highly scalable
  • ✓ Production-ready
  • ✓ Advanced features (filtering, etc.)

Disadvantages:

  • ✗ Requires Qdrant service
  • ✗ More complex setup

Use Cases:

  • Production applications
  • Large datasets
  • Multi-user systems
  • When persistence is required

Setting up Qdrant

You can run Qdrant using Docker:

docker run -p 6333:6333 qdrant/qdrant