如何在ElasticSearch中按包含移动日期的派生值排序?

时间:2018-12-11 20:31:31

标签: elasticsearch

我需要按照我定义的特殊值对ElasticSearch返回的结果进行排序,我们称其为'X'。

现在-问题是,“ X”是基于以下内容得出的值:

  • 文档中的字段A(这是一个“术语”)
  • B字段(这是一个“日期”)
  • 当前日期(UTC)

因此,问题显然是3。日期总是在变化,因此我不确定如何将其包括在排序中,因为它不是文档的一部分。

从我的初步阅读看来,我可以在此处使用“脚本”,但是我担心性能,因为我可能要搜索+整理1000多个文档。

想到的唯一另一个想法是每晚计算值,并将其存储在每个文档中。但这有一些缺点:

  • 我需要在后台运行一些东西来更新此值
  • 可能要更新很多文档(每晚超过60%)。
  • 根据脚本运行的时间长短,该值的精度会降低。 (如果我每晚运行,则价值为23小时“陈旧”)

有什么建议吗?

谢谢

1 个答案:

答案 0 :(得分:0)

这可以通过每晚运行一个ES脚本来计算值并将其存储在每个文档中来完成