elasticsearch - 带日期的 Elasticsearch 无痛脚本
问题描述
我有一个包含日期字段的文档。我想按此日期 ASC 对文档进行排序,但我希望最后有过去日期的文档。
最后,就像我想将文档值分配给一个新值:-如果日期是>“utc now”,则将值分配给任何日期-如果日期是<“utc now”,然后将值分配给最大日期
然后,我可以按此字段 ASC 排序。
因此,似乎实现这一目标的唯一方法是使用无痛脚本。
这是我到目前为止所得到的,有效..但不确定这是否是正确的方法。
GET /listings/_search
{
"track_total_hits": true,
"from": 0,
"query": {
"match_all": {}
},
"size": 48,
"sort": [
{
"_script" : {
"type": "string",
"script": {
"lang": "painless",
"source": "if (doc['auctionOn.utc'].size() == 0) { return params['maxTimestamp'].toString(); } else { long timestampDoc = doc['auctionOn.utc'].value.toInstant().toEpochMilli();long timestampNow = new Date().getTime();if (timestampDoc > timestampNow) { return timestampDoc.toString(); } else { return params['maxTimestamp'].toString(); } }",
"params": {
"maxTimestamp": 9223372036854776000
}
},
"order": "asc"
}
}
]
}
有人可以告知这是否是正确/有效的方法吗?
解决方案
推荐阅读
- python - 如何优化此代码(在花药列中找到最接近的字符串)
- c# - 有没有办法使用 asp.net 在浏览器中显示 .DWG 文件
- node.js - 无法使用 cpanel 将 Nestjs 应用程序安装到主机
- python-3.x - sqlalchemy 表中是否可以有 python dict?如果是这样,知道如何声明该字段有什么帮助吗?
- excel - 循环遍历数据验证列表,选择多个工作表以打印到 PDF 或 Excel
- excel - 在 Excel 中使用 Range.Find 方法匹配用户名
- php - 从 PHP 中的 Sentry 事件中获取罪魁祸首
- python - 如果两边都存在,比较结果
- python - 即使我在 Windows 10 上有文件 tests.py,也可以在 0.000 秒内运行 0 次测试
- php - Twitter:OpenSSL SSL_read:对等方重置连接,errno 104