给定以下Elasticsearch文档结构
{
"mappings": {
"doc": {
"properties": {
"projectKey": {
"type": "keyword"
},
"documentDate": {
"type": "date"
},
"lastAnalysisDate": {
"type": "date"
},
"qualityScore": {
"type": "float"
}
}
}
}
}
我想获取满足这些条件的所有文档(伪代码):(当前日期- 1年〈文件日期〈当前日期)AND (文件日期- 1年〈上次分析日期〈文件日期)
第二个条件(斜体)是我遇到的问题,我不知道如何使查询引用documentDate
字段的值。
以下是我目前尝试的方法:
documentDate:[now-365d TO now] AND lastAnalysisDate:[documentDate-365d TO documentDate]
=〉0个结果返回(应该是数千个)documentDate:[now-365d TO now] AND lastAnalysisDate:[doc['documentDate'].value-365d TO doc['documentDate'].value]
=〉无效查询documentDate:[now-365d TO now] AND lastAnalysisDate:[doc['documentDate'].date-365d TO doc['documentDate'].date]
=〉无效查询
Grafana只支持Elasticsearch的Lucene语法,所以我不能使用查询DSL。
有没有办法我可以做到这一点或这是不可能的?
先谢谢你!
1条答案
按热度按时间1u4esq0p1#
我可以通过在Elasticsearch中创建一个别名来让它工作,如下所示:
然后在Grafana中我创建了一个指向别名的Elasticsearch数据源。在我的 Jmeter 板中,我使用了一个空查询的数据源,因为所有的过滤都是通过别名完成的。