2016-05-18 9 views
0

Dies ist das erste Mal, dass ich eine Frage habe zu fragen.Elasticsearch: eine Reihe von Werten in einem Feld zu speichern

Ich plane Elasticsearch für die Speicherung bestimmter Daten zu verwenden, die ich habe. Das Problem, dem ich gegenüberstehe, ist, dass ich den Wert eines Feldes als einen tolerierten Bereich speichern muss. Wie this- der Feldname - tolerierte pH Beispielwert - 5,1-7,0

Ich brauche es so zu speichern, und wenn eine Abfrage ausgeführt wird, muss es sehen, ob der eingegebene Wert im Bereich liegt.

Ich kann es in der Referenz und Führer nicht finden. Ich finde nur Range-Filter. Kann mir bitte jemand helfen? Und führen Sie mich, wie es gemacht werden kann?

+0

Range Filter gibt Ihnen die Antwort. Sie können andere Felder filtern, die Sie sehen möchten. – sunkuet02

Antwort

0

Ich würde erstellen zwei Felder

{ ... 
    "minToleratedPh": 5.1, 
    "maxToleratedPh": 7.0 
} 

Und dann zwei range Abfragen verwenden, um zu überprüfen, ob die Einschränkung minPh < input_value < maxPh gilt (nur input_value durch den pH-Wert ersetzen zu überprüfen):

{ 
    "query": { 
    "bool": { 
     "filter": [ 
     { 
      "range": { 
      "minToleratedPh": { 
       "lt": input_value 
      } 
      } 
     },{ 
      "range": { 
      "maxToleratedPh": { 
       "gt": input_value 
      } 
      } 
     } 
     ] 
    } 
    } 
} 
+0

Benötigen Sie weitere Informationen zu diesem Problem? – Val

+0

Vielen Dank Val .. !! Das beantwortet meine Frage perfekt. Ich habe gerade an der gleichen Idee herumgebastelt. Vielen Dank für das Aussortieren ... !! –

+0

Fertig :) Danke nochmal :) –