Проверьте список Lucene Expressions , чтобы проверить, какие выражения доступны для поля даты и как вы можете их использовать
Просто для простоты проверьте ниже query
.Я создал два поля metricsTime
и arrivalTime
в образце индекса, который я создал.
Образец документа
POST mydateindex/mydocs/1
{
"metricsTime": "2018-09-23T06:00:00.000Z",
"arrivalTime": "2018-10-19T06:35:20.347Z"
}
Запрос с использованием безболезненного сценария
POST mydateindex/_search
{ "query": {
"bool": {
"must": {
"match_all": {
}
},
"filter": {
"bool" : {
"must" : {
"script" : {
"script" : {
"inline" : "doc['arrivalTime'].date.dayOfYear - doc['metricsTime'].date.dayOfYear > params.difference",
"lang" : "painless",
"params": {
"difference": 2
}
}
}
}
}
}
}
}
}
Обратите внимание на строку ниже в запросе
"inline" : "doc['arrivalTime'].date.dayOfYear - doc['metricsTime'].date.dayOfYear > params.difference"
Теперь, если вы изменитезначение difference
от 2
до 26
(что на единицу больше, чем разница в датах), тогда вы увидите, что вышеуказанное query
не вернет документ.
Но, тем не менее, я привел запрос в качестве примера того, как с помощью сценариев вы можете сравнивать два разных запроса, и, пожалуйста, обратитесь к ссылке, которой я поделился.