针对给定时间范围和AND运算符的Deep Elasticsearch通配符查询

时间:2016-05-19 09:28:49

标签: elasticsearch elasticsearch-query

我设法构建了

的查询
  • 匹配给定时间范围内的所有精确值
  • 支持and运营商。

现在我想扩展查询以支持部分匹配,但我很难做到这一点。任何建议将不胜感激。

映射

"event": {
    "properties": {
        "alarmId": {
            "type": "string",
            "index": "not_analyzed"
        },
        "startTimestamp": {
            "type": "long"
        },
        ...
    }
}

当前查询

{
    "bool": {
        "must":[
            {"range": {"endTimestamp": {"gte": ?0}}},
            {"range": {"startTimestamp": {"lte": ?1}}}
        ],
        "should": [
            {"match": {"_all": {"query": "?2", "zero_terms_query": "all", "operator": "and"}}}
        ],
        "minimum_should_match" : 1
    }
}

1 个答案:

答案 0 :(得分:0)

回答(感谢Val

{
    "bool": {
        "must":[
            {"range": {"endTimestamp": {"gte": ?0}}},
            {"range": {"startTimestamp": {"lte": ?1}}}
        ],
        "should": [
            {"query_string": {"query": "?2"}}"
        ],
        "minimum_should_match" : 1
    }
}

现在查询支持groupingwildcardsmore