2016-10-04 5 views
1

Ich habe ein elasticsearch Cluster. Alle Dokumente im Cluster haben den gleichen Index und Typ. Jedes Dokument hat zwei Nummernfelder -> Feld1 und Feld2.Lucene Abfrage, wo zwei Felder verglichen werden

Ich möchte alle Dokumente in Grafana anzeigen, wo .

Gibt es eine Abfrage wie:

document_type:test AND field1 > field2 ? 

Antwort

2

Soweit ich weiß gibt es keine Möglichkeit, diese Art von Abfrage mit Elasticsearch (Lucene) durchzuführen. Es unterstützt Bereichsabfragen, jedoch keinen Vergleich zwischen verschiedenen Feldern im Dokument.

2

Sie können dies tun mit einer (stark) script query, wie folgt aus:

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

Siehe auch weitere Dokumentation auf das, was aus dem Elasticsearch scripting module zur Verfügung steht.

+0

Das klingt nett. Kann ich diese Art von Abfrage mit Grafana verwenden? – CPA

+0

@CPA - Keine Ahnung. Ich kenne Lucene und Elasticsearch, nicht Grafana. – femtoRgon

Verwandte Themen