Как отфильтровать массив в результатах эластичного поиска? - PullRequest
0 голосов
/ 30 апреля 2019

Я хочу отфильтровать результаты, выдаваемые ES внутри массива. мы можем сказать, что документ содержит массив случайных данных. Можно ли отображать документ с конкретными результатами в этом массиве?

Вот мой запрос

GET /products/_search
{
  "query": {
    "bool"  : {
      "must" : [
        { "match_phrase" :{ "shop": "shop_url" }},
        {"match_phrase"  :{"id" : "000111222" }}
      ]
    }
 },
  "_source": ["title","audiences"]
}

результаты выглядят нормально

{
        "_source" : {
          "audiences" : [
            {
              "store_id" : "19",
              "account_id" : 115,
              "fb_id" : 111111,
              "name" : "name it ",
              "rule" : "{}",
              "source_id" : 111111,
              "type" : "TYPE IT"
            },
            {
              "store_id" : "19",
              "account_id" : 114,
              "fb_id" : 222222,
              "name" : "name it ",
              "rule" : "{}",
              "source_id" : 22222,
              "type" : "TYPE IT"
            }

          ],
          "title" : "title here"
        }
      } 

РЕЗУЛЬТАТ , который я ищу. (фильтр по полю внутри массива)

{
        "_index" : "products",
        "_type" : "_doc",
        "_id" : "744376893505",
        "_score" : 1.0006012,
        "_source" : {
          "audiences" : [
            {
              "store_id" : "19",
              "account_id" : 115,
              "fb_id" : 111111,
              "name" : "name it ",
              "rule" : "{}",
              "source_id" : 111111,
              "type" : "TYPE IT"
            }
          ],
          "title" : "title here"
        }
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...