From a9dddd8a3278fe56ef50c645c305ee0f90f0944c Mon Sep 17 00:00:00 2001 From: Virat Singh Date: Sat, 1 Apr 2023 15:53:02 -0400 Subject: [PATCH] Virat/add param to optionally not refresh ES indices (#2233) **Context** Noticed a TODO in `langchain/vectorstores/elastic_vector_search.py` for adding the option to NOT refresh ES indices **Change** Added a param to `add_texts()` called `refresh_indices` to not refresh ES indices. The default value is `True` so that existing behavior does not break. --- langchain/vectorstores/elastic_vector_search.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/langchain/vectorstores/elastic_vector_search.py b/langchain/vectorstores/elastic_vector_search.py index 537dfb09..a175d3a6 100644 --- a/langchain/vectorstores/elastic_vector_search.py +++ b/langchain/vectorstores/elastic_vector_search.py @@ -132,6 +132,7 @@ class ElasticVectorSearch(VectorStore, ABC): self, texts: Iterable[str], metadatas: Optional[List[dict]] = None, + refresh_indices: bool = True, **kwargs: Any, ) -> List[str]: """Run more texts through the embeddings and add to the vectorstore. @@ -139,6 +140,7 @@ class ElasticVectorSearch(VectorStore, ABC): Args: texts: Iterable of strings to add to the vectorstore. metadatas: Optional list of metadatas associated with the texts. + refresh_indices: bool to refresh ElasticSearch indices Returns: List of ids from adding the texts into the vectorstore. @@ -167,8 +169,9 @@ class ElasticVectorSearch(VectorStore, ABC): ids.append(_id) requests.append(request) bulk(self.client, requests) - # TODO: add option not to refresh - self.client.indices.refresh(index=self.index_name) + + if refresh_indices: + self.client.indices.refresh(index=self.index_name) return ids def similarity_search(