AWS AppSync 和 GrahphQL 中的搜索修饰符

Search modifiers in AWS AppSync and GrahphQL

我正在尝试使用 AWS AppSync + Amplify 开发 GraphQL API。我的模型看起来像 -

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)并为这些查询中的每一个创建解析器。按照上面 link 中的示例进行操作。