Можно ли создать поиск ElasticSeach, который возвращает только совпадающие вложенные объекты, а не все вложенные объекты? - PullRequest
0 голосов
/ 09 апреля 2019

Можно ли построить поиск / запрос ElasticSearch, который возвращает с результатами только те вложенные объекты, которые соответствуют критериям поиска вложенных объектов, но не все вложенные объекты?

Например ...

{
   "product": "shoe 1",
   "available" [
       {
          "size" : "small",
          "color" : "red",
       },
       {
          "size" : "large",
          "color" : "blue",
       }
   ],
}
{
   "product": "shoe 2",
   "available" [
       {
          "size" : "medium",
          "color" : "red",
       }
       {
          "size" : "xtra large",
          "color" : "green",
       }
   ],
}

.. где поиск красного цвета обуви вернул бы ....

{
   "product": "shoe 1",
   "available" [
       {
          "size" : "small",
          "color" : "red",
       },
   ],
}
{
   "product": "shoe 2",
   "available" [
       {
          "size" : "medium",
          "color" : "red",
       }
   ],
}

1 Ответ

0 голосов
/ 09 апреля 2019

Можете ли вы попробовать что-то вроде:

GET /my_index/products/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "nested": {
            "path": "available",
            "score_mode": "max", 
            "query": {
              "bool": {
                "must": [
                  {
                    "match": {
                      "available.color": "red"
                    }
                  }
                ]
              }
            }
          }
        }
      ]
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...