【问题标题】:Compute value on the fly with elasticsearch使用 elasticsearch 即时计算价值
【发布时间】:2019-02-08 15:33:32
【问题描述】:

我有一些 RDBMS 事务作为文档存储在我的索引中。

每当我在 elasticsearch 中查询文档时,我都需要检查每个文档是否满足特定条件(例如,我需要检查文档是否超过 30 天)并且应该提供一个值,表明文档是否满足或不是。

我尝试过使用“script_fields”,但不知道如何执行日期计算。

GET myindex/_search
{
"query" : {
    "match_all": {}
},
"script_fields": {
  "test1": {
    "script": {
      "source": "doc['id'].value = 123"
    }
  }
}
}

【问题讨论】:

  • 请显示您当前的查询
  • 请参考查询
  • 我在您的查询中没有看到您的“文档超过 30 天”限制,请说明您所做的事情
  • 我找不到使用日期计算的方法。这就是我的问题。我可以进行字符串和整数比较。

标签: elasticsearch kibana


【解决方案1】:

你不需要脚本字段,date math 来救援:

GET myindex/_search
{
    "query": {
        "range" : {
            "date_field" : {
                "lt" :  "now-30d"
            }
        }
    }
}

【讨论】:

  • 是的,我知道这一点。但我的问题有点不同。我发布的查询将获取所有结果,但会提供一个布尔值,告诉我们文档是否满足条件(在脚本中提供)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-18
  • 2019-10-13
  • 2015-10-29
  • 2021-04-07
  • 1970-01-01
  • 2021-12-29
相关资源
最近更新 更多