diff --git a/src/documents/search/_translate.py b/src/documents/search/_translate.py index f25c9c0f2..7afa23773 100644 --- a/src/documents/search/_translate.py +++ b/src/documents/search/_translate.py @@ -163,7 +163,12 @@ def scan(query: str) -> list[Token]: i += 1 continue token, i = matched - _flush(buf, tokens) + if buf and buf[-1] == ",": + buf.pop() + _flush(buf, tokens) + tokens.append(Comma()) + else: + _flush(buf, tokens) tokens.append(token) i = _maybe_comma(query, i, tokens) _flush(buf, tokens) diff --git a/src/documents/tests/search/test_translate.py b/src/documents/tests/search/test_translate.py index d927a87bc..ff91cf301 100644 --- a/src/documents/tests/search/test_translate.py +++ b/src/documents/tests/search/test_translate.py @@ -716,6 +716,12 @@ class TestISODatetimeBounds: "added:[2026-05-01T00:00:00Z TO 2026-06-01T00:00:00Z]" ) + def test_translate_query_text_before_comma_separated_date_clause(self) -> None: + result = translate_query("schäfersee,created:previous year", UTC) + assert result == ( + "schäfersee AND created:[2025-01-01T00:00:00Z TO 2026-01-01T00:00:00Z]" + ) + def test_invalid_iso_datetime_raises(self) -> None: # A token with "T" that is not valid ISO datetime -> raise. with pytest.raises(InvalidDateQuery) as exc_info: