Elasticsearch Bool必须查询

时间:2019-07-03 12:01:06

标签: elasticsearch

我正在尝试编写Elasticsearch bool查询。我在使用布尔必须查询字段(DATE)时遇到问题。 弹性搜索数据如下所示:

{
    "took": 5,
    "timed_out": false,
    "_shards": {
        "total": 15,
        "successful": 15,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": 1,
        "max_score": 11.519888,
        "hits": [
            {
                "_index": "test-2019.06.27",
                "_type": "test",
                "_id": "pa6gmGsByDlvLvAyiRF-",
                "_score": 11.519888,
                "_source": {
                    "DATE": "01/06/19"
                }
            }
        ]
    }
}

像这样的Elasticsearch查询:

{
"query": 
    {
      "bool" : {
        "must" : [
          {
            "match" : {
              "DATE" : {
                "query" : "01/06/19",
                "operator" : "AND",
                "prefix_length" : 0,
                "max_expansions" : 50,
                "fuzzy_transpositions" : true,
                "lenient" : false,
                "zero_terms_query" : "NONE",
                "auto_generate_synonyms_phrase_query" : true,
                "boost" : 1.0
              }
            }
          }
        ],
        "adjust_pure_negative" : true,
        "boost" : 1.0
      }
    }

}

查询不起作用。 有什么想法吗?

2 个答案:

答案 0 :(得分:0)

对于日期类型的查询,我曾经写过Range查询。

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-query.html

答案 1 :(得分:0)

尝试以下代码,

{
    "query": {
        "range" : {
            "DATE" : {
                "gte" : "now-1d/d",
                "lt" :  "now/d"
            }
        }
    }
}