ElasticSearch - 如何获取当前日期和时间?

Sik*_*kor 7 java date elasticsearch

是否可以从 Elastic Search 获取当前日期和时间(最好在 Java API 中)?

我已经到处搜索了相当长一段时间,但只发现范围查询可以对某些日期字段执行数学运算,并且可以使用脚本字段,但我找不到任何用于返回当前日期的脚本。我所要求的只是类似于 SQL 的 now() 的东西。

谢谢你的时间。

mre*_*rec 8

In Sense(您没有指定 ES 版本;这适用于 2.3.2):

GET your_index/_search
{
  "size": 1, 
  "script_fields": {
    "now": {
      "script": "new Date().getTime()"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

在 Java API 中,它会类似于(未测试):

yourSearchRequestBuilder.addScriptField("now", "new Date().getTime()");
Run Code Online (Sandbox Code Playgroud)

这确实要求至少有 1 个文档,your_index以便有东西可以挂起脚本字段;这有点像黑客。

  • 实际上,在 Elastic 8.3.2 中,不需要在搜索中指定任何“your_index”。简单的“GET _search”也可以。 (2认同)