我正在使用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",
}
}
]
我正在尝试根据 createddate 进行过滤。这是我的查询,我正在尝试过滤出数据,但不起作用。请帮我。
注意:我需要过滤两个日期之间的数据。
{
"query": {
"bool": {
"filter": [
{
"range": {
"createddate": {
"gte": "2020-04-11 00:00:00",
"lte": "2020-04-16 23:59:59"
}
}
}
]
}
}
}
最佳答案
映射:
{
"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"
}
}
]
搜索查询将过滤两个日期之间的数据,并给出预期结果。
关于elasticsearch - 如何在Elasticsearch中使用日期过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61212989/