From 7c2fb0ccc49afeb042916ce810e9d7111355e866 Mon Sep 17 00:00:00 2001 From: q Date: Sat, 18 Apr 2026 22:01:34 +0300 Subject: [PATCH] Fix 500 error: replace datetime_range with range in Qdrant filter qdrant-client 1.15.1 does not support datetime_range in FieldCondition. Use models.Range with string comparison (same as Lotus reference). Also wrap date filter in try-except to prevent crash on bad date format. Co-Authored-By: Claude Sonnet 4.6 --- search/retrieval.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/search/retrieval.py b/search/retrieval.py index 6451d42..f14455f 100644 --- a/search/retrieval.py +++ b/search/retrieval.py @@ -18,15 +18,21 @@ def _build_filter(question: Question) -> models.Filter | None: must_conditions: list[models.Condition] = [] if question.date_range: - must_conditions.append( - models.FieldCondition( - key="metadata.start", - datetime_range=models.DatetimeRange( - gte=question.date_range.from_, - lte=question.date_range.to, - ), + try: + must_conditions.append( + models.FieldCondition( + key="metadata.end", + range=models.Range(gte=question.date_range.from_), + ) ) - ) + must_conditions.append( + models.FieldCondition( + key="metadata.start", + range=models.Range(lte=question.date_range.to), + ) + ) + except Exception as e: + logger.warning("Date filter failed: %s", e) if question.asker: must_conditions.append(