Как использовать фильтр даты вasticsearch - PullRequest
1 голос
/ 14 апреля 2020

Я использую клиентский объект эластичного поиска.

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",


            }
        }
    ]

Я пытаюсь фильтровать на основе createdate . Это мой запрос, который я пытаюсь отфильтровать данные, но не работает. Пожалуйста, помогите мне.

Примечание : мне нужно отфильтровать данные между двумя датами.

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

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

}

1 Ответ

1 голос
/ 14 апреля 2020

Отображение:

{
  "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"
            }
         }
      ]

Поисковый запрос фильтрует данные между двумя датами и выдает ожидаемый результат.

...