Я пытаюсь разработать API GraphQL с помощью AWS AppSync + Amplify. Моя модель выглядит так -
type AudioMetadata @model @searchable {
id: ID!,
title: String!,
description: String!,
category: [String]!,
duration: Int!
}
Как вы можете заметить, это поддерживается DynamoDB и Amazon Elastic Search. Я хочу иметь Query, который принимает модификаторы поиска для поиска. Модификаторы поиска — это модификаторы, подобные Slack, и принимают форму id:, intitle:, indescription:, duration_lt: и duration_gt:.
При поиске я хотел бы искать в ElasticSearch.
Мой вопрос заключается в том, как я могу написать Query, который обслуживает эти модификаторы поиска (возможно, взять модификатор поиска и строку поиска) и выполняет поиск по этому полю в Elastic Search.





Как упомянул в комментариях пользователь Yik San Chan, отличным примером будет https://aws-amplify.github.io/docs/cli/graphql#add-a-custom-geolocation-search-resolver-that-targets-an-elasticsearch-domain-created-by-searchable.
В вашем случае вам нужно будет создать дополнительные запросы graphql в схеме для обработки различных значений, по которым вы хотите выполнить поиск (например, intitle, indescription), и создать распознаватели для каждого из этих запросов. Следуйте примерам по ссылке выше.
Вот пример: aws-amplify.github.io/docs/cli/…