gpt4 book ai didi

elasticsearch - Elasticsearch脚本-将Unix时间戳转换为 “YYYYMM”

转载 作者:行者123 更新时间:2023-12-03 01:38:59 24 4
gpt4 key购买 nike

我正在使用Elasticsearch 2.4,并且具有Groovy脚本。我的文档中有一个字段doc['created_unix_timestamp'],它是integer类型,它包含Unix时间戳。在搜索查询的脚本中,我试图从该值获取YYYYMM

例如,如果doc['created_unix_timestamp']1522703848,那么在计算期间的脚本中,我想将其转换为201804,其中前4位数字是Year,后两位是month(如果需要,则填充0)。

我试过了:

Integer.parseInt(new SimpleDateFormat('YYYYMM').format(new Date(doc['created_unix_timestamp'])))

但是它会抛出“编译错误” "TransportError(400, 'search_phase_execution_exception', 'failed to compile groovy script')"。任何想法如何使它起作用或正确的语法是什么?

最佳答案

几个建议。

  • 重新索引并使created_unix_timestamp在elasticsearch中成为真实日期。这将使各种新查询成为可能(例如日期范围)。这将是理想的。
  • 如果您无法重新编制索引,则将其作为一个int从ES撤回,然后将其转换为您想要的客户端,我不建议您将该工作推送到ES集群。
  • 关于elasticsearch - Elasticsearch脚本-将Unix时间戳转换为 “YYYYMM”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49619002/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com