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.
This commit is contained in:
Qihui Xie 2024-02-02 03:03:25 +08:00 committed by GitHub
parent 9d458d089a
commit c5b01ac621
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -31,6 +31,7 @@ class QdrantTranslator(Visitor):
Comparator.LTE, Comparator.LTE,
Comparator.GT, Comparator.GT,
Comparator.GTE, Comparator.GTE,
Comparator.LIKE,
) )
"""Subset of allowed logical comparators.""" """Subset of allowed logical comparators."""
@ -69,6 +70,10 @@ class QdrantTranslator(Visitor):
return rest.FieldCondition( return rest.FieldCondition(
key=attribute, match=rest.MatchValue(value=comparison.value) 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} kwargs = {comparison.comparator.value: comparison.value}
return rest.FieldCondition(key=attribute, range=rest.Range(**kwargs)) return rest.FieldCondition(key=attribute, range=rest.Range(**kwargs))