按弹性搜索中日期之间的时差查询



假设我有这样的索引:

{"id": "12345678", "start": 1541999620214, "end": 1541999620222 }

如何查询结束起始>10的文档?并且现在开始<60000

简单如下:

{
"query": {
"script": {
"script": {
"source": "doc.end.value - doc.start.value < 10"
}
}
}
}

{
"query": {
"script": {
"script": {
"source": "System.currentTimeMillis() - doc.start.value < 60000"
}
}
}
}

不过,作为一种性能优化,您可以在索引时将end - start信息存储在文档中,这样您就不必使用脚本,您的查询只会变成:

{
"query": {
"range": {
"diff": {
"lt": 10
}
}
}
}

最新更新