ElasticSearch - 数组

时间:2016-04-15 00:02:24

标签: elasticsearch nest

给出以下映射:

"item": { 
    "properties": { 
        "name": { 
            "type": "string", 
            "index": "standard"  
        }, 
        "state": { 
            "type": "string", 
            "index": "not_analyzed"  
        }, 
        "important_dates": {
            "properties": {
                "city_id": {
                    "type": "integer"
                },
                "important_date": {
                    "type": "date",
                    "format": "dateOptionalTime"
                }
            }
        }
    }
}

并在索引中给出以下项目:

{
    "_id": 1,
    "name": "test data 1",
    "state": "california",
    "important_dates": [
    {
        "city_id": 100,
        "important_date": "2016-01-01T00:00:00"
    },
    {
        "city_id": 200,
        "important_date": "2016-05-15T00:00:00"
    }
},
{
    "_id": 2,
    "name": "test data 2",
    "state": "wisconsin",
    "important_dates": [
    {
        "city_id": 300,
        "important_date": "2016-04-10T00:00:00"
    },
    {
        "city_id": 400,
        "important_date": "2016-05-20T00:00:00"
    }
}

是否可以对important_dates进行范围过滤,但只能使用important_dates数组中的最小日期进行过滤?如果将city_id作为参数提供,这还可以扩展为仅使用特定城市的日期吗?

示例查询:

如果我在important_dates上有4/9/2016到5/17/2016的范围过滤器,我只想回到第2项,因为第1项中的最小日期不在给定的范围内。

如果我在important_dates上有2016年4月9日到2016年5月17日的范围过滤范围过滤器并传入city_id 400,我就不会得到任何结果。

0 个答案:

没有答案