diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-elasticsearch/llama_index/vector_stores/elasticsearch/base.py b/llama-index-integrations/vector_stores/llama-index-vector-stores-elasticsearch/llama_index/vector_stores/elasticsearch/base.py index 4a960906ed032..698be93df8bd1 100644 --- a/llama-index-integrations/vector_stores/llama-index-vector-stores-elasticsearch/llama_index/vector_stores/elasticsearch/base.py +++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-elasticsearch/llama_index/vector_stores/elasticsearch/base.py @@ -215,6 +215,8 @@ def __init__( batch_size: int = 200, distance_strategy: Optional[DISTANCE_STRATEGIES] = "COSINE", retrieval_strategy: Optional[AsyncRetrievalStrategy] = None, + metadata_mappings: Optional[Dict[str, Dict[str, str]]] = None, + **kwargs, ) -> None: nest_asyncio.apply() @@ -232,12 +234,15 @@ def __init__( distance=DistanceMetric[distance_strategy] ) - metadata_mappings = { + base_metadata_mappings = { "document_id": {"type": "keyword"}, "doc_id": {"type": "keyword"}, "ref_doc_id": {"type": "keyword"}, } + metadata_mappings = metadata_mappings or {} + metadata_mappings.update(base_metadata_mappings) + self._store = AsyncVectorStore( user_agent=get_user_agent(), client=es_client, @@ -296,7 +301,11 @@ def add( BulkIndexError: If AsyncElasticsearch async_bulk indexing fails. """ return asyncio.get_event_loop().run_until_complete( - self.async_add(nodes, create_index_if_not_exists=create_index_if_not_exists) + self.async_add( + nodes, + create_index_if_not_exists=create_index_if_not_exists, + **add_kwargs, + ) ) async def async_add( diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-elasticsearch/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-elasticsearch/pyproject.toml index 1f6f45f4ebf8b..d4d7a697ef149 100644 --- a/llama-index-integrations/vector_stores/llama-index-vector-stores-elasticsearch/pyproject.toml +++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-elasticsearch/pyproject.toml @@ -27,7 +27,7 @@ exclude = ["**/BUILD"] license = "MIT" name = "llama-index-vector-stores-elasticsearch" readme = "README.md" -version = "0.2.0" +version = "0.2.1" [tool.poetry.dependencies] python = ">=3.8.1,<4.0"