2

我有两个字段,一个是与每条记录相关联的时间戳,一个是 expiryDate,所以我想在发现部分搜索部分放置一个 lucene 查询,以便提取到期日期 > 时间戳的记录。任何人都可以帮助我编写查询。将 online.timestamp 视为一个字段,将 online.expiry 视为另一个字段。

4

1 回答 1

2

您可以编写以下查询:-

{"constant_score":{"filter":{"script" : { "script" : "doc['online.expiry'].value > doc['online.timestamp'].value"}}}}

使用上述查询时,您可能会看到错误,例如:-

ScriptException[类型 [inline]、操作 [search] 和 lang [groovy] 的脚本被禁用]

要解决此错误,请编辑您的 elasticsearch.yml 文件并在末尾输入以下属性:-

 script.inline:on

然后您可以重新启动您的 Elasticsearch 节点或集群,然后在 Kibana 上查询相同的内容,这将获取您想要的记录。

于 2016-06-12T06:52:38.653 回答