Вы сможете выполнить это, используя Script Query . Это позволило бы вам создать объект даты, используя значения полей, а затем сравнить эту дату с текущей датой.
Условный пример
{
"query": {
"bool" : {
"filter" : {
"script" : {
"script" : {
"params": {
"monthRange": 6
},
"source": """
def today = new Date();
def timestamp = new Date(doc['timestamp']['year'].value, doc['timestamp']['monthValue'].value, doc['timestamp']['dayValue'].value);
/* Date comparison magic (I don't know Java, so you're on your own here) */
/* return result of comparison */
""",
"lang": "painless"
}
}
}
}
}
}
Я только один раз использовал Безболезненно , поэтому я недостаточно знаком, чтобы дать идеальный ответ. Но это может помочь вам начать. Если вы застряли, просто задайте другой вопрос, относящийся к вашей проблеме, и вам может помочь кто-то, кто более знаком с Java / Painless.