From ba62ff89cc46c437a2bb5b867c3d44cb61ef4852 Mon Sep 17 00:00:00 2001 From: Assaf Toledo Date: Mon, 27 Nov 2023 22:52:57 +0200 Subject: [PATCH] BUGFIX: Support for elastic indices that don't return 'metadata' in '_source' (#13903) Description: Some Elastic indexes do not return a 'metadata' field in '_source'. However, prior to this PR, the code assumed there always is a 'metadata' field. This PR adds support for cases where the field is missing by adding it manually. Issue: #13869 --- libs/langchain/langchain/vectorstores/elasticsearch.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libs/langchain/langchain/vectorstores/elasticsearch.py b/libs/langchain/langchain/vectorstores/elasticsearch.py index 4af8395de80..457d3f48d88 100644 --- a/libs/langchain/langchain/vectorstores/elasticsearch.py +++ b/libs/langchain/langchain/vectorstores/elasticsearch.py @@ -798,6 +798,8 @@ class ElasticsearchStore(VectorStore): "metadata", self.query_field, ]: + if "metadata" not in hit["_source"]: + hit["_source"]["metadata"] = {} hit["_source"]["metadata"][field] = hit["_source"][field] docs_and_scores.append(