date - ElasticSearch 脚本获取当前年份的值
问题描述
我正在尝试在我的 rescore 函数中创建一个脚本,以检查书目发布日期(doc['bibliografische_verschijningsdatum'])是否与商业发布日期(doc['verschijningsdatum'])相同。
和 doc['verschijningsjaar'].value == new Date.getYear()
我怎样才能无痛地获得今天日期的年份?
"script_score": {
"script": "((doc['verschijningsdatum'] == doc['bibliografische_verschijningsdatum']) && (doc['verschijningsjaar'].value == new Date().getYear()) ? 1 : 0)"
}
}
解决方案
您的问题已在弹性论坛上提出。至少来自弹性团队的一名成员的官方回答如下(重点是我的):
Painless 故意没有任何访问 now 样式变量的权限,因此可以更好地缓存它们。当前的建议是让您现在通过脚本 params 发送样式变量。
顺便说一句,您应该知道此查询根本无法利用索引。它必须为每个文档加载 @timestamp 字段并进行比较。这比在摄取时提取星期几并将其添加到文档中要慢得多。
推荐阅读
- nginx - NGINX access.log 未更新
- html - 滑块图像和导航之间的差距
- numba - Numba (AOT) vs Nuitka
- verilog - Verilog 行为建模:语法错误,意外结束
- javascript - Appium & UiAutomator2 自动化已经打开的应用程序
- c# - 我应该在我的实体框架数据访问层中存储硬编码数据吗?
- linux - 无法在 CentOS 7 上安装 Docker 17
- flutter - 在颤动中卸载资产
- java - 可以将侦听器添加到没有引用名称的对象吗?
- android - 在android上向Mapbox Map添加多个标记,无法将源添加到mapboxMap