Конкатенация Среды. CurrentDirectory с задним путем

Вы должны быть в состоянии сделать это, используя 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, может вам помочь.

5
задан leora 6 December 2008 в 12:52
поделиться

4 ответа

Вероятно, лучше управлять компонентами контура как компонентами контура, а не строками:

string path = System.IO.Path.Combine(Environment.CurrentDirectory, 
                                     @"..\..\..\Project2\xml\File.xml");
10
ответ дан 18 December 2019 в 09:54
поделиться

Использование:

System.IO.Path.GetFullPath(@"..\..\Project2\xml\File.xml")
4
ответ дан 18 December 2019 в 09:54
поделиться
string path = Path.Combine( Environment.CurrentDirectory,
                            @"..\..\..\Project2\xml\File.xml" );

Один ".." берет Вас к мусорному ведру

Затем ".." берет Вас к Project1

Затем ".." берет Вас к родителю Project1

Затем вниз в файл

2
ответ дан 18 December 2019 в 09:54
поделиться

Обратите внимание на то, что использование Пути. Объединение () не могло бы дать Вам ожидаемый результат, например:

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);
}
1
ответ дан 18 December 2019 в 09:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: