На момент написания статьи (3 января 2019 г.) самый простой способ сделать это - сохранить дату в виде целого числа (например, секунд с начала эпохи), которое откроет поля фильтра gt, lt, gte, ...
в автоматически сгенерированном поиске. входной фильтр фильтра.
Другое решение - написать собственный распознаватель с помощью консоли AWS AppSync или собственного стека CloudFormation. При написании собственного распознавателя вы можете использовать весь Elasticsearch DSL для реализации всех видов запросов (см. https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-query.html).. Чтобы перейти по этому пути, вы можете добавить собственное поле поиска к типу запроса в своей схеме и написать собственный распознаватель.
type Query {
searchNotesByCreatedAt(start: String!, end: String!): NotesConnection
}
Затем через консоль или через собственный стек CloudFormation вы можете написать резольвер, например:
{
"version": "2017-02-28",
"operation": "GET",
"path": "/note-<your-api-id>/doc/_search", // created by amplify
"params": {
"body": {
"sort": [{ "createdAt" : {"order" : "desc"}}],
"query": {
"range" : {
"createdAt" : {
"gte": $ctx.args.start,
"lte": $ctx.args.end
}
}
}
}
}
}
Вам потребуется только временно развернуть этот преобразователь с помощью консоли или собственного стека CF. Ведется работа, чтобы вы могли написать свои собственные распознаватели из CLI-интерфейса усиления. Для получения дополнительной информации о том, как это будет работать, см. https://github.com/aws-amplify/amplify-cli/issues/574.
Дайте мне знать, если это работает для вас.