From c5b01ac621e7c615acdc3cbbde21c68092975d03 Mon Sep 17 00:00:00 2001 From: Qihui Xie Date: Fri, 2 Feb 2024 03:03:25 +0800 Subject: [PATCH] community[patch]: support LIKE comparator (full text match) in Qdrant (#12769) **Description:** Support [Qdrant full text match filtering](https://qdrant.tech/documentation/concepts/filtering/#full-text-match) by adding Comparator.LIKE to QdrantTranslator. --- libs/langchain/langchain/retrievers/self_query/qdrant.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libs/langchain/langchain/retrievers/self_query/qdrant.py b/libs/langchain/langchain/retrievers/self_query/qdrant.py index e76c716db26..c99287751a1 100644 --- a/libs/langchain/langchain/retrievers/self_query/qdrant.py +++ b/libs/langchain/langchain/retrievers/self_query/qdrant.py @@ -31,6 +31,7 @@ class QdrantTranslator(Visitor): Comparator.LTE, Comparator.GT, Comparator.GTE, + Comparator.LIKE, ) """Subset of allowed logical comparators.""" @@ -69,6 +70,10 @@ class QdrantTranslator(Visitor): return rest.FieldCondition( key=attribute, match=rest.MatchValue(value=comparison.value) ) + if comparison.comparator == Comparator.LIKE: + return rest.FieldCondition( + key=attribute, match=rest.MatchText(text=comparison.value) + ) kwargs = {comparison.comparator.value: comparison.value} return rest.FieldCondition(key=attribute, range=rest.Range(**kwargs))