community: Fix LanceDB similarity search bug (#23591)

**Description:** LanceDB didn't allow querying the database using
similarity score thresholds because the metrics value was missing. This
PR simply fixes that bug.
**Issue:** not applicable
**Dependencies:** none
**Twitter handle:** not available

---------

Co-authored-by: ccurme <chester.curme@gmail.com>
This commit is contained in:
Valentin 2024-07-01 18:33:45 +02:00 committed by GitHub
parent 389a568f9a
commit bf402f902e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -372,11 +372,19 @@ class LanceDB(VectorStore):
prefilter = kwargs.get("prefilter", False)
query_type = kwargs.get("query_type", "vector")
lance_query = (
tbl.search(query=query, vector_column_name=self._vector_key)
.limit(k)
.where(filter, prefilter=prefilter)
)
if metrics := kwargs.get("metrics"):
lance_query = (
tbl.search(query=query, vector_column_name=self._vector_key)
.limit(k)
.metric(metrics)
.where(filter, prefilter=prefilter)
)
else:
lance_query = (
tbl.search(query=query, vector_column_name=self._vector_key)
.limit(k)
.where(filter, prefilter=prefilter)
)
if query_type == "hybrid" and self._reranker is not None:
lance_query.rerank(reranker=self._reranker)