是否可以创建仅返回匹配的嵌套对象而不是所有嵌套对象的ElasticSeach搜索?

时间:2019-04-09 12:49:38

标签: elasticsearch

是否有可能构造一个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 :(得分:0)

您可以尝试以下方法吗?

GET /my_index/products/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "nested": {
            "path": "available",
            "score_mode": "max", 
            "query": {
              "bool": {
                "must": [
                  {
                    "match": {
                      "available.color": "red"
                    }
                  }
                ]
              }
            }
          }
        }
      ]
    }
  }
}