Elasticsearch извлекает документы только при наличии нескольких вложенных элементов, соответствующих критериям - PullRequest
0 голосов
/ 09 сентября 2018

У меня есть несколько сообщений с вложенными объектами вложений. Мне нужно выбрать только те сообщения, которые имеют (введите Attachment с именем txt.txt ) AND (введите Inline с именем jpg.jpg ).

[{
   "id": 1,
   "hasAttachments": true,
   "attachmentCount": 2,
   "attachments": [
      {
         "type": "Attachment",
         "name": "a.txt",
         "mimeType": "text/plain"
      },
      {
         "type": "Inline",
         "name": "jpg.jpg",
         "mimeType": "image/jpeg"
      }
   ]  
},
{
   "id": 2,
   "hasAttachments": true,
   "attachmentCount": 2,
   "attachments": [
      {
         "type": "Attachment",
         "name": "txt.txt",
         "mimeType": "text/plain"
      },
      {
         "type": "Inline",
         "name": "jpg.jpg",
         "mimeType": "image/jpeg"
      }
   ]  
}]

Вот что я попробовал:

{
  "query": {
    "nested": {
      "path": "attachments",
      "score_mode": "avg",
      "query": {
        "bool": {
          "must": [
            {
              "match": {
                "attachments.type": "Attachment"
              }
            },
            {
              "match": {
                "attachments.name": "txt.txt"
              }
            }
          ]
        }
      }
    }
  }
}

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

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