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 <noreply@anthropic.com>
This commit is contained in:
q 2026-04-18 22:01:34 +03:00
parent e468c4768b
commit 7c2fb0ccc4

View file

@ -18,15 +18,21 @@ def _build_filter(question: Question) -> models.Filter | None:
must_conditions: list[models.Condition] = [] must_conditions: list[models.Condition] = []
if question.date_range: if question.date_range:
try:
must_conditions.append(
models.FieldCondition(
key="metadata.end",
range=models.Range(gte=question.date_range.from_),
)
)
must_conditions.append( must_conditions.append(
models.FieldCondition( models.FieldCondition(
key="metadata.start", key="metadata.start",
datetime_range=models.DatetimeRange( range=models.Range(lte=question.date_range.to),
gte=question.date_range.from_,
lte=question.date_range.to,
),
) )
) )
except Exception as e:
logger.warning("Date filter failed: %s", e)
if question.asker: if question.asker:
must_conditions.append( must_conditions.append(