Practical overview
When it fits
Use Vectors when a Java application needs indexed vector retrieval and local persistence within its own process, rather than a separate vector-database service.
Who it is for
- Java and JVM developers adding local vector retrieval to an application.
- Teams building a retrieval component for a knowledge or RAG workflow.
- Spring AI and LangChain4j developers seeking an embedded vector-store integration.
Documented uses
- Store application embeddings in an in-process collection, with optional durable local state.
- Search vectors using an index and a supported similarity metric.
- Filter retrieval results using associated metadata.
- Connect a collection to Spring AI or LangChain4j through the provided adapters.
Requirements & limits
The repository is public and states an Apache-2.0 license. The library requires JDK 25; the Vector API module must be enabled at runtime.
- Persistent storage paths must be absolute; omitting the path creates an in-memory collection.
- A persistent collection is designed for one in-process writer per directory.
- Changes are staged until commit() unless an auto-commit threshold is configured.
- The repository recommends backing up data before upgrades across on-disk format versions.
- Optional S3 and Arrow IPC modules add their own dependencies and runtime requirements.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Create and search a persistent vector collection
Add vectors to a local collection, commit the data, and issue a similarity search from Java.
Before you start
- JDK 25 with the incubating Vector API enabled using --add-modules jdk.incubator.vector.
- The com.integrallis:vectors dependency.
- An absolute storage path for a persistent collection.
Steps
Add com.integrallis:vectors:$vectorsVersion to the application dependencies.
Build a VectorCollection with an absolute storagePath, a vector dimension, a similarity metric and an index type.
Add documents containing vectors to the collection and call commit().
Build a SearchRequest with a query vector and result count, then call collection.search().
Expected outcome
The documented example creates a persisted collection, stores two vectors, commits them and requests the closest results for a query vector.
Guide limitations
- Adds, upserts and deletes are staged until commit() unless an auto-commit threshold is configured.
- The repository describes one in-process writer per persistent collection directory.
- Back up collection data before upgrades across on-disk format versions.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 13 October 2026
- Original website title
- integrallis/vectors · Official homepage title · retained in its source language
Related options
External vector database — The repository identifies an external database as a better fit when an application needs multi-process writers, cross-language clients or managed multi-tenant operations.

