elasticsearch - Elasticsearch - 按日期字段按特定输入日期升序的脚本排序
问题描述
假设我有这种文件(事件):
[
{
"title": "Foo",
"dates": [
"2019-07-01",
"2019-07-15",
"2019-08-01"
]
},
{
"title": "Bar",
"dates": [
"2019-07-18"
]
}
]
我想执行搜索以查找给定日期范围内发生的所有事件,因此我搜索在 7 月 10 日(2019-07-10)和 8 月 10 日(2019-08-10)之间发生的所有事件)。
查询不会是问题,但如果我想按升序显示事件(所以“Foo”事件排在前面,因为 7 月 15 日在 18 日之前) - 我该如何正确排序?
我考虑过使用脚本对我的文档进行排序,也许是通过过滤日期以便只保留有效日期,然后使用第一个日期值的时间戳进行简单的数字排序。但是我将如何通过脚本过滤日期?
我可以使用“脚本字段”并传递我的 fromDate 和 toDate 将过滤后的日期复制到一个新字段(比如说validDates)并使用该字段进行排序吗?
顺便说一句:索引将只包含几千个事件。
更新:
经过一些研究,看起来如果不使用嵌套对象而不是数组,就无法做到这一点。如果我错了,请纠正我,我宁愿在嵌套类型上使用简单的日期数组...
解决方案
推荐阅读
- javascript - 如何仅显示单击的 div 的边框?
- php - 模块创建 prestashop
- java - Eclipse 从 CMD 提示符找到 Java,但不是从桌面单击
- apache-kafka - 镜子制造商线程故障
- node.js - 如何在没有 elasticsearch-curator 的情况下删除所有旧索引?
- javascript - 将对象数组转换为数组数组(按属性)
- java - java.lang.RuntimeException:无法启动活动 ComponentInfo:java.lang.NumberFormatException:对于输入字符串:“4.90”
- python - 在后台运行shell命令而无需等待
- javascript - 身份验证错误后的 Firebase 用户数据
- javascript - 从 API 响应中将图像放在 html 页面上?