Supported Vector Databases
Elasticsearch
Elasticsearch is a distributed, RESTful search and analytics engine that can efficiently store and search vector data using dense vectors and k-NN search.
Installation
Elasticsearch support requires additional dependencies. Install them with:
Usage
Config
Let’s see the available parameters for the elasticsearch
config:
Parameter | Description | Default Value |
---|---|---|
collection_name | The name of the index to store the vectors | mem0 |
embedding_model_dims | Dimensions of the embedding model | 1536 |
host | The host where the Elasticsearch server is running | localhost |
port | The port where the Elasticsearch server is running | 9200 |
cloud_id | Cloud ID for Elastic Cloud deployment | None |
api_key | API key for authentication | None |
user | Username for basic authentication | None |
password | Password for basic authentication | None |
verify_certs | Whether to verify SSL certificates | True |
auto_create_index | Whether to automatically create the index | True |
custom_search_query | Function returning a custom search query | None |
Features
- Efficient vector search using Elasticsearch’s native k-NN search
- Support for both local and cloud deployments (Elastic Cloud)
- Multiple authentication methods (Basic Auth, API Key)
- Automatic index creation with optimized mappings for vector search
- Memory isolation through payload filtering
- Custom search query function to customize the search query
Custom Search Query
The custom_search_query
parameter allows you to customize the search query when Memory.search
is called.
Example
It should be a function that takes the following parameters:
query
: a query vector used inMemory.search
limit
: a number of results used inMemory.search
filters
: a dictionary of key-value pairs used inMemory.search
. You can add custom pairs for the custom search query.
The function should return a query body for the Elasticsearch search API.