Search was not behaving as expected for types with a single "date" field. Adding an additional date range filter that uses just "date" instead of "date.sort" seems to address the issue, but one or the other of these is probably not necessary.
{
range: {
date: {
gte: params.date,
lte: params.date
}
}
},
{
range: {
"date.sort": {
gte: params.date,
lte: params.date
}
}
},