elasticsearch - 在elasticsearch中按日期之间的时差查询
问题描述
假设我有这样的索引:
{"id": "12345678", "start": 1541999620214, "end": 1541999620222 }
如何查询 end-start > 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
}
}
}
}
推荐阅读
- macos - setenv 出错:MATLAB 上的 startup.m 文件“不存在或不可读”
- vue-router - 如何使用“this.$router.push()”传递道具对象
- reactjs - react-mathjax 渲染两次。我该如何解决?
- c - 在switch语句之前输入字符串并使用switch语句比较c中的字符串
- vue.js - 当我动态添加选择框时,如何使 select2 在 vue js 中可用?
- django-channels - 如何摆脱“僵尸”频道
- mongodb - 有没有办法使用 MongoDB Realm 离线验证 android 应用程序?
- github - GitHub - 获取一个月内评论或提交任何内容的用户
- cmake - 将 g++ 开关转换为 CMAKE 的问题
- android-dialer - Android自定义拨号器 - 未接来电的实现缺失?