Elastic Search仅在数组中存在所有值的情况下才选择doc

时间:2018-08-09 15:25:15

标签: elasticsearch

我的索引中有一堆产品,每个产品都有此文档结构

{
  "id": 59342,
  "days": [
    {
      "date":  "2018-08-14",
      "rate": 101.00
    } 
    , 
    {
      "date":  "2018-08-15",
      "rate": 200.00
    }
    , 
    {
      "date":  "2018-08-18",
      "rate": 200.00
    }
  ]
} 

现在,仅在days数组包含2018-08-142018-08-16之间的所有日期的情况下,我才想获得此文档。我尝试了几种解决方案,但都没有成功。这是我到目前为止所拥有的

{
  "query": {
    "nested": {
      "path": "days",
      "query": {
        "bool": {
          "must": [
            {
              "match": {
                "days.date": "2018-08-14"
              }
            },
            {
              "match": {
                "days.date": "2018-08-15"
              }
            },
            {
              "match": {
                "days.date": "2018-08-16"
              }
            }
          ]
        }
      }
    }
  }
}

这是产品的映射数据

{
  "mappings": {
    "products": {
      "properties": {
        "id": {
          "type": "integer"
        },
        "days": {
          "type": "nested",
          "properties": {
            "date": {
              "type": "date"
            },
            "rate": {
              "type": "double"
            }
          }
        }
      }
    }
  }
}

0 个答案:

没有答案
相关问题