Filtering documents by a numeric field with duration:<=1200 worked, but adding a second condition (duration:>=600 && duration:<=1200) returned more results than the single condition, which is impossible for a correct AND. The >=, &&, and space characters in the filter_by parameter were not URL-encoded, so Typesense parsed a mangled filter. A reproduction in the Go client showed the same: the test only passed once the filter string was URL-encoded.