Browse Source

[OpenSearch] Small bug fixes in query

Deshraj Yadav 1 year ago
parent
commit
f31351bedb
3 changed files with 4 additions and 4 deletions
  1. 1 1
      embedchain/embedchain.py
  2. 2 2
      embedchain/vectordb/opensearch.py
  3. 1 1
      pyproject.toml

+ 1 - 1
embedchain/embedchain.py

@@ -352,7 +352,7 @@ class EmbedChain(JSONSerializable):
         # get existing ids, and discard doc if any common id exist.
         where = {"url": src}
         if self.config.id is not None:
-            where.update({"metadata.app_id": self.config.id})
+            where["app_id"] = self.config.id
 
         db_result = self.db.get(ids=ids, where=where)  # optional filter
         existing_ids = set(db_result["ids"])

+ 2 - 2
embedchain/vectordb/opensearch.py

@@ -93,7 +93,7 @@ class OpenSearchDB(BaseVectorDB):
 
         if "app_id" in where:
             app_id = where["app_id"]
-            query["query"]["bool"]["must"].append({"term": {"metadata.app_id": app_id}})
+            query["query"]["bool"]["must"].append({"term": {"metadata.app_id.keyword": app_id}})
 
         # OpenSearch syntax is different from Elasticsearch
         response = self.client.search(index=self._get_index(), body=query, _source=True, size=limit)
@@ -168,7 +168,7 @@ class OpenSearchDB(BaseVectorDB):
         pre_filter = {"match_all": {}}  # default
         if "app_id" in where:
             app_id = where["app_id"]
-            pre_filter = {"bool": {"must": [{"term": {"metadata.app_id": app_id}}]}}
+            pre_filter = {"bool": {"must": [{"term": {"metadata.app_id.keyword": app_id}}]}}
         docs = docsearch.similarity_search(
             input_query,
             search_type="script_scoring",

+ 1 - 1
pyproject.toml

@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "embedchain"
-version = "0.0.66"
+version = "0.0.67"
 description = "embedchain is a framework to easily create LLM powered bots over any dataset"
 authors = ["Taranjeet Singh"]
 license = "Apache License"