2016-10-04 71 views
1

我有一個elasticsearch集羣。集羣中的所有文檔都具有相同的索引和類型。每個文檔都有兩個數字字段 - > field1和field2。Lucene查詢兩個字段將被比較

我想顯示格拉法納所有文件,其中value of field1 > value of field2

有一個查詢,如:

document_type:test AND field1 > field2 ? 

回答

2

據我所知是沒有辦法使用elasticsearch(lucene的)執行那種查詢。它支持範圍查詢,但不支持文檔中不同字段之間的比較。

2

您可以用(常規)script query,這樣做:

{ 
    "query" : { 
     "term" : { 
      "document_type" : "test" 
     } 
    }, 
    "filter" : { 
     "script" : { 
      "script" : "doc['field1'].value > doc['field2'].value" 
     } 
    } 
} 

另見,對什麼是可從Elasticsearch scripting module更多的文檔。

+0

這聽起來不錯。我可以用grafana使用這種查詢嗎? – CPA

+0

@CPA - 不知道。我知道Lucene和Elasticsearch,而不是Grafana。 – femtoRgon