fix: opensearch vector search falls back to keyword search (#20723)

Co-authored-by: wenjun.gu <wenjun.gu@envision-energy.com>
This commit is contained in:
jefferyvvv
2025-06-06 16:29:15 +08:00
committed by GitHub
parent 723b69cf8d
commit 37c3283450

View File

@@ -184,7 +184,16 @@ class OpenSearchVector(BaseVector):
}
document_ids_filter = kwargs.get("document_ids_filter")
if document_ids_filter:
query["query"] = {"terms": {"metadata.document_id": document_ids_filter}}
query["query"] = {
"script_score": {
"query": {"bool": {"filter": [{"terms": {Field.DOCUMENT_ID.value: document_ids_filter}}]}},
"script": {
"source": "knn_score",
"lang": "knn",
"params": {"field": Field.VECTOR.value, "query_value": query_vector, "space_type": "l2"},
},
}
}
try:
response = self._client.search(index=self._collection_name.lower(), body=query)