Вложенный тип не получает пользовательский ввод от родителя - PullRequest
0 голосов
/ 24 января 2019

У меня есть вложенный тип в моей схеме 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
  } 

Это запрос, который я выполняю.Я хочу только результаты, которые соответствуют идентификатору и указанному lang:

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 Ответ

0 голосов
/ 24 января 2019

Не уверен, получил ли я ваше сообщение, но когда вы хотите вернуть вложенный объект, вы должны использовать Внутренние попадания .

Вы также можете установить поле _source для получения только внутреннегохиты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...