@@ -119,9 +119,9 @@ def load_entries(self, *, namespace: Optional[str] = None) -> list[BaseVectorSto
119119 for hit in response ["hits" ]["hits" ]
120120 ]
121121
122- def query (
122+ def query_vector (
123123 self ,
124- query : str ,
124+ vector : list [ float ] ,
125125 * ,
126126 count : Optional [int ] = None ,
127127 namespace : Optional [str ] = None ,
@@ -130,15 +130,14 @@ def query(
130130 field_name : str = "vector" ,
131131 ** kwargs ,
132132 ) -> list [BaseVectorStoreDriver .Entry ]:
133- """Performs a nearest neighbor search on OpenSearch to find vectors similar to the provided query string .
133+ """Performs a nearest neighbor search on OpenSearch to find vectors similar to the provided vector list .
134134
135135 Results can be limited using the count parameter and optionally filtered by a namespace.
136136
137137 Returns:
138138 A list of BaseVectorStoreDriver.Entry objects, each encapsulating the retrieved vector, its similarity score, metadata, and namespace.
139139 """
140140 count = count or BaseVectorStoreDriver .DEFAULT_QUERY_COUNT
141- vector = self .embedding_driver .embed_string (query )
142141 # Base k-NN query
143142 query_body = {"size" : count , "query" : {"knn" : {field_name : {"vector" : vector , "k" : count }}}}
144143
@@ -165,5 +164,34 @@ def query(
165164 for hit in response ["hits" ]["hits" ]
166165 ]
167166
167+ def query (
168+ self ,
169+ query : str ,
170+ * ,
171+ count : Optional [int ] = None ,
172+ namespace : Optional [str ] = None ,
173+ include_vectors : bool = False ,
174+ include_metadata : bool = True ,
175+ field_name : str = "vector" ,
176+ ** kwargs ,
177+ ) -> list [BaseVectorStoreDriver .Entry ]:
178+ """Performs a nearest neighbor search on OpenSearch to find vectors similar to the provided query string.
179+
180+ Results can be limited using the count parameter and optionally filtered by a namespace.
181+
182+ Returns:
183+ A list of BaseVectorStoreDriver.Entry objects, each encapsulating the retrieved vector, its similarity score, metadata, and namespace.
184+ """
185+ vector = self .embedding_driver .embed_string (query )
186+ return self .query_vector (
187+ vector ,
188+ count = count ,
189+ namespace = namespace ,
190+ include_vectors = include_vectors ,
191+ include_metadata = include_metadata ,
192+ field_name = field_name ,
193+ ** kwargs ,
194+ )
195+
168196 def delete_vector (self , vector_id : str ) -> NoReturn :
169197 raise NotImplementedError (f"{ self .__class__ .__name__ } does not support deletion." )
0 commit comments