将比较两个字段的 Lucene 查询
Lucene query where two fields will be compared
我有一个弹性搜索集群。集群中的所有文档都具有相同的索引和类型。每个文档都有两个数字字段 -> field1 和 field2。
我想显示 Grafana 中的所有文档,其中 value of field1 > value of field2
。
是否有类似这样的查询:
document_type:test AND field1 > field2 ?
据我所知,无法使用 elasticsearch (lucene) 执行此类查询。它确实支持范围查询,但不支持文档中不同字段之间的比较。
您可以使用 (groovy) script query 来执行此操作,如下所示:
{
"query" : {
"term" : {
"document_type" : "test"
}
},
"filter" : {
"script" : {
"script" : "doc['field1'].value > doc['field2'].value"
}
}
}
另请参阅有关 Elasticsearch scripting module 中可用内容的更多文档。
我有一个弹性搜索集群。集群中的所有文档都具有相同的索引和类型。每个文档都有两个数字字段 -> field1 和 field2。
我想显示 Grafana 中的所有文档,其中 value of field1 > value of field2
。
是否有类似这样的查询:
document_type:test AND field1 > field2 ?
据我所知,无法使用 elasticsearch (lucene) 执行此类查询。它确实支持范围查询,但不支持文档中不同字段之间的比较。
您可以使用 (groovy) script query 来执行此操作,如下所示:
{
"query" : {
"term" : {
"document_type" : "test"
}
},
"filter" : {
"script" : {
"script" : "doc['field1'].value > doc['field2'].value"
}
}
}
另请参阅有关 Elasticsearch scripting module 中可用内容的更多文档。