Вы должны быть в состоянии сделать это, используя 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, может вам помочь.
Вероятно, лучше управлять компонентами контура как компонентами контура, а не строками:
string path = System.IO.Path.Combine(Environment.CurrentDirectory,
@"..\..\..\Project2\xml\File.xml");
Использование:
System.IO.Path.GetFullPath(@"..\..\Project2\xml\File.xml")
string path = Path.Combine( Environment.CurrentDirectory,
@"..\..\..\Project2\xml\File.xml" );
Один ".." берет Вас к мусорному ведру
Затем ".." берет Вас к Project1
Затем ".." берет Вас к родителю Project1
Затем вниз в файл
Обратите внимание на то, что использование Пути. Объединение () не могло бы дать Вам ожидаемый результат, например:
string path = System.IO.Path.Combine(@"c:\dir1\dir2",
@"..\..\Project2\xml\File.xml");
Это приводит к в следующей строке:
@"c:\dir1\dir2\dir3\..\..\Project2\xml\File.xml"
Если Вы ожидаете, что путь будет "c:\dir1\Project2\xml\File.xml", то Вы могли бы использовать метод как этот вместо Пути. Объединение ():
public static string CombinePaths(string rootPath, string relativePath)
{
DirectoryInfo dir = new DirectoryInfo(rootPath);
while (relativePath.StartsWith("..\\"))
{
dir = dir.Parent;
relativePath = relativePath.Substring(3);
}
return Path.Combine(dir.FullName, relativePath);
}