Вложенный тип не получает пользовательский ввод от родителя
У меня есть вложенный тип в моей схеме GraphQL с помощью консоли AWS AppSync. Например: в функции пользователь должен ввести идентификатор и опционально lang. Этот язык следует использовать для идентификации субтитров. Однако после настройки моей схемы и распознавателя, как показано ниже: каждый раз, когда я запускаю запрос, он возвращает результат со всеми langs (когда он должен только возвращать идентификатор и lang, указанные пользователем). Я не уверен, почему, когда я разделяю функцию, а она не является вложенной, эта же схема и распознаватель работают. пожалуйста помоги!!! (Я использую Elastic Search)
type Query {
getVideo(ID: String, lang: String): [video]
}
type video {
mainId: ID
title: String
subtitles: [subtitles]
}
type subtitles {
childId: ID
lang: String
caption: Boolean
}
Это мой обработчик запросов - он прикреплен к video.subtitles - ниже (шаблон отображения ответов является стандартным при создании списка для ES):
{
"version": "2018-02-28",
"operation": "GET",
"path":"/lang/lang/_search",
#if(!$context.arguments.lang)
"params": {}
#else
"params": {
"body": {
"from": 0,
"size": 50,
"query": {
"bool": {
"must": [
{"match" : {"lang.keyword" : "${context.args.lang}" }}
]
}
}
}
}
#end
}
Это запрос, который я выполняю. Я хочу только результаты, которые соответствуют идентификатору и указанному языку:
query vid(ID: "1234", lang: "eng") {
subtitles {
lang
caption
}
}
Теперь результат следующий: обратите внимание, что он возвращает ВСЕ langs вместо только eng. Я не уверен, почему это, пожалуйста, помогите!
{
"data":
"getVideo": [
"subtitles" : [
{
"lang": "dutch",
"caption": "false"
},
{
"lang": "eng",
"caption": "true"
},
{
"lang": "span",
"caption": "true",
}
]
]
}
1 ответ
Не уверен, что получил ваше сообщение, но когда вы хотите вернуть вложенный объект, вы должны использовать Inner Hits.
Вы также можете установить свое поле _source для получения только внутренних попаданий.