Фильтр по значениям, представленным в виде списка объектов в упругом поиске - PullRequest
0 голосов
/ 28 июня 2019

Я застрял в месте, где я не могу создать запрос, который поможет мне запросить конкретное поле, которое на самом деле представляет собой список объектов. Образец документа:

"sample_object" : {
    "name" : "TRS",
    "name_number" : 2096873,
    "dob" : "2011-02-09",
    "sample_nested_object_1" : {
        "id" : 6,
        "name" : "example name"
    },
    "sample_nested_object_list_1" : [
      {
          "id" : 15,
          "number" : 12
      },
      {
          "id" : 18,
          "number" : 15
      }
    ],
    "sample_nested_object_list_2" : [
      {
          "id" : 2958179,
          "name" : "example name 1",
          "type" : "example type"
      },
      {
          "id" : 2958180,
          "name" : "example name 2",
          "type" : "example type"
      }
    ],
    "sample_nested_object_2" : {
        "id" : 4,
        "name" : "sample name"
    }
}

Я успешно сделал запросы, которые фильтруются в соответствии с name , name_number , dob .

Мне нужно запросить набор данных в соответствии с фильтрами, примененными во внешнем интерфейсе. Таким образом, я получил бы список id (s) для sample_nested_object_list_1 и должен найти sample_object (s) , которые имеют sample_nested_object_list_1 с указанием идентификатора (ов) . Также нужно сделать то же самое для sample_nested_object .

UPDATE:

Отображение индекса:

sample_object= {
    'name': StringField(),
    'name_number': IntegerField(),
    'dob': DateField(),
    'sample_nested_object_1': ObjectField(
        properties={
            'id': IntegerField(),
            'name': StringField(),
        }
    ),
    'sample_nested_object_list_1': NestedField(
        properties={
            'id': IntegerField(),
            'number': IntegerField(),
        }
    ),
    'sample_nested_object_list_2': NestedField(
        properties={
            'id': IntegerField(),
            'name': StringField(),
            'type': StringField(),
        }
    ),
    'sample_nested_object_2': ObjectField(
        properties={
            'id': IntegerField(),
            'name': StringField(),
        }
    ),
}

Запрос:

Я не могу придумать, как создать запрос, если я хочу получить список sample_object (s) , из которых sample_nested_object_list_1 с id как 15, 16, а также sample_nested_object_1 с идентификатором 6.

...