Эластичный поиск. Поиск по значению вложенной коллекции

Нужна помощь с конкретным запросом ES. У меня есть объекты по индексу Elastic Search. Пример одного из них (Участник):

{
        "_id": null,
        "ObjectID": 6008,
        "EventID": null,
        "IndexName": "crmws",
        "version_id": 66244,
        "ObjectData":             {
           "PARTICIPANTTYPE": "2",
           "STATE": "ACTIVE",
           "EXTERNALID": "01010111",
           "CREATORID": 1006,
           "partAttributeList":               
           [
              {
                 "SYSNAME": "A",
                 "VALUE": "V1"
              },
              {
                 "SYSNAME": "B",
                 "VALUE": "V2"
              },
              {
                 "SYSNAME": "C",
                 "VALUE": "V2"
              }
           ],
           ....

Мне нужно найти единственную сущность (ы) с помощью сущностей partAttributeList. Например, весь объект участника с SYSNAME=A, VALUE=V1 в том же объекте partAttributeList.

Если я использую спички usul:

{"match": {"ObjectData.partAttributeList.SYSNAME": "A"}},
{"match": {"ObjectData.partAttributeList.VALUE": "V1"}}

Конечно, я найду больше объектов, чем мне действительно нужно. Пример избыточного объекта, который можно найти:

              ...
              {
                 "SYSNAME": "A",
                 "VALUE": "X"
              },
              {
                 "SYSNAME": "B",
                 "VALUE": "V1"
              }..

1 ответ

То, что я пытаюсь сделать, это поиск по нескольким полям одного и того же объекта для точных совпадений фрагмента текста, поэтому попробуйте это: https://www.elastic.co/guide/en/elasticsearch/guide/current/multi-query-strings.html

Другие вопросы по тегам