SQLiteVectorStore

org.llm4s.vectorstore.SQLiteVectorStore
See theSQLiteVectorStore companion object
final class SQLiteVectorStore extends VectorStore

SQLite-based vector store implementation.

Uses SQLite for storage with in-memory cosine similarity computation. Suitable for development, testing, and small-to-medium datasets (up to ~100K vectors depending on dimensions).

Features:

  • File-based or in-memory storage
  • FTS5 full-text search fallback
  • ACID transactions
  • No external dependencies beyond SQLite

Limitations:

  • Vector similarity computed in Scala (not accelerated)
  • All embeddings loaded into memory for search
  • No built-in sharding or replication

For production with larger datasets, consider pgvector or Qdrant.

Value parameters

connection

The database connection

dbPath

Path to SQLite database file

Attributes

Companion
object
Graph
Supertypes
trait VectorStore
class Object
trait Matchable
class Any

Members list

Value members

Concrete methods

override def clear(): Result[Unit]

Clear all records from the store.

Clear all records from the store.

Attributes

Returns

Success or error

Definition Classes
override def close(): Unit

Close the store and release resources.

Close the store and release resources.

Attributes

Definition Classes
override def count(filter: Option[MetadataFilter]): Result[Long]

Count total records in the store.

Count total records in the store.

Value parameters

filter

Optional metadata filter

Attributes

Returns

Record count

Definition Classes
override def delete(id: String): Result[Unit]

Delete a record by its ID.

Delete a record by its ID.

Value parameters

id

The record identifier

Attributes

Returns

Success or error

Definition Classes
override def deleteBatch(ids: Seq[String]): Result[Unit]

Delete multiple records by their IDs.

Delete multiple records by their IDs.

Value parameters

ids

The record identifiers

Attributes

Returns

Success or error

Definition Classes
override def deleteByFilter(filter: MetadataFilter): Result[Long]

Delete all records matching a metadata filter.

Delete all records matching a metadata filter.

Value parameters

filter

The metadata filter

Attributes

Returns

Number of records deleted

Definition Classes
override def deleteByPrefix(prefix: String): Result[Long]

Delete all records with IDs starting with the given prefix.

Delete all records with IDs starting with the given prefix.

Value parameters

prefix

The ID prefix to match

Attributes

Returns

Number of records deleted

Definition Classes
override def get(id: String): Result[Option[VectorRecord]]

Retrieve a record by its ID.

Retrieve a record by its ID.

Value parameters

id

The record identifier

Attributes

Returns

The record if found

Definition Classes
override def getBatch(ids: Seq[String]): Result[Seq[VectorRecord]]

Retrieve multiple records by their IDs.

Retrieve multiple records by their IDs.

Value parameters

ids

The record identifiers

Attributes

Returns

The found records (missing IDs are silently skipped)

Definition Classes
override def list(limit: Int, offset: Int, filter: Option[MetadataFilter]): Result[Seq[VectorRecord]]

List records with pagination.

List records with pagination.

Value parameters

filter

Optional metadata filter

limit

Maximum records to return

offset

Number of records to skip

Attributes

Returns

Records in insertion order

Definition Classes
override def search(queryVector: Array[Float], topK: Int, filter: Option[MetadataFilter]): Result[Seq[ScoredRecord]]

Search for similar vectors using cosine similarity.

Search for similar vectors using cosine similarity.

Value parameters

filter

Optional metadata filter

queryVector

The query embedding

topK

Number of results to return

Attributes

Returns

Matching records with similarity scores

Definition Classes
override def stats(): Result[VectorStoreStats]

Get statistics about the vector store.

Get statistics about the vector store.

Attributes

Returns

Store statistics

Definition Classes
override def upsert(record: VectorRecord): Result[Unit]

Store a vector record.

Store a vector record.

If a record with the same ID exists, it will be replaced.

Value parameters

record

The record to store

Attributes

Returns

Success or error

Definition Classes
override def upsertBatch(records: Seq[VectorRecord]): Result[Unit]

Store multiple vector records in a batch.

Store multiple vector records in a batch.

More efficient than individual upserts for bulk operations.

Value parameters

records

The records to store

Attributes

Returns

Success or error

Definition Classes

Concrete fields

val dbPath: String