如何在Elasticsearch中使用日期过滤器

问题描述 投票:1回答:1

我正在使用elasticsearch的客户对象。

var elasticsearch = require('elasticsearch');
var client = new elasticsearch.Client({
    host:"https://********",
    log: 'trace',
});


"hits": [
        {
            "_index": "abc",
            "_type": "_doc",
            "_id": "39KueHEBnbKK-Fpwq9wG",
            "_score": 1.0,
            "_source": {
                "videoId": "EV-IOHABXh-qOCdiWVbW",
               "createddate": "2020-04-14 18:04:05"


            }
        },
        {
            "_index": "abc",
            "_type": "_doc",
            "_id": "29KueHEBnbKK-Fpwq9wG",
            "_score": 1.0,
            "_source": {
                "videoId": "zV-IOHABXh-qOCdiWVbW",
                 "createddate": "2020-03-14 18:04:05",


            }
        }
    ]

我正在尝试根据创建日期进行过滤。这是我的查询,我正在尝试过滤出数据,但不起作用。请帮助我。

注意:我需要过滤两个日期之间的数据。

{
   "query": {
    "bool": {
        "filter": [
            {

                "range": {
                    "createddate": {
                        "gte": "2020-04-11 00:00:00",
                        "lte": "2020-04-16 23:59:59"
                    }
                }
            }
        ]
    }
}

}

elasticsearch elasticsearch-5
1个回答
0
投票

映射:

{
  "mappings": {
    "properties": {
      "createddate": {
        "type": "date",
        "format":"yyyy-MM-dd HH:mm:ss"
      }
    }
  }
}

为两个文件建立索引

{
    "videoId": "EV-IOHABXh-qOCdiWVbW",
    "createddate":"2020-04-14 18:04:05"
 }

 {
 "videoId": "zV-IOHABXh-qOCdiWVbW",
 "createddate": "2020-03-14 18:04:05"
 }

您提供的相同搜索查询:

{
   "query": {
    "bool": {
        "filter": [
            {

                "range": {
                    "createddate": {
                        "gte": "2020-04-11 00:00:00",
                        "lte": "2020-04-16 23:59:59"
                    }
                }
            }
        ]
    }
}
}

结果:

"hits": [
         {
            "_index": "test",
            "_type": "_doc",
            "_id": "1",
            "_score": 0.0,
            "_source": {
               "videoId": "EV-IOHABXh-qOCdiWVbW",
               "createddate": "2020-04-14 18:04:05"
            }
         }
      ]

搜索查询将过滤两个日期之间的数据,并给出预期的结果。

© www.soinside.com 2019 - 2024. All rights reserved.