Как получить доступ к родительскому полю из вложенной области в запросе Elasticsearch? - PullRequest
0 голосов
/ 18 июня 2020

У меня есть следующий объект, где ключ - это идентификаторы моей группы, а значения - соответствующие коды для каждой группы.

Obj:

{
   "1" : [1,2,3],
   "2" : [4,5,6]
}

Я конвертирую все ключи в массив чисел и повторить их в моем запросе.

Я хотел добавить фильтр, который будет принимать только коды, которые пересекаются с моими значениями, но кажется, что вложенные поля не знакомы с моим идентификатором родительской повторяющейся группы.

Вот мой запрос -> проблема отмечена c часть

myFunc(myObj) {
groupIds:Array<number> = getAllKeysFromObject(myObj); //GETTING ALL GROUP IDS - will return [1,2]
  return {
        _source: false,
        docvalue_fields: [{
            field: 'group_id',
            format: 'use_field_mapping',
        }],
        query: {
            bool: {
                filter: [{
                    terms: {group_id: groupIds}, //HERE ARE THE GROUP IDS
                }, {
                    nested: {
                        inner_hits: {
                            _source: false,
                            docvalue_fields: [{
                                field: 'products.code',
                                format: 'use_field_mapping',
                            },  
                            ],
                            size: 2,
                            sort: [{[`products.somefield`]: 'desc'}],
                        },
                        path: 'products',
                        query: {
                            bool: {
                              must: [
                                {
                                  terms: {
                                    'products.code': myObj[group_id], //THIS DOES NOT WORK as group_id is not recognised. Would like for group_id=1 to have here [1,2,3] and for next iteration of group_id=2 to get [4,5,6]
                                  },
                                },
                              ],
                            },
                          },
                        },
                      },
                    ],
                  },
                },
        size: 5,
    };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...