2017-10-19 2 views
1

J'ai la requête suivante dans ElasticSearch:Comment créer un filtre booléen sur plusieurs champs dans Elasticsearch?

{ 
    "script_fields": { 
    "travel_time": { 
     "script": { 
     "inline": "doc['DateTo'].value - doc['DateFrom'].value" 
     } 
    } 
    }, 
    "stored_fields": [ 
    "_source" 
    ], 
    "query": { 
    "bool": { 
     "filter": { 
     "exists": { 
      "field": "DateTo" 
     } 
     } 
    } 
    } 
} 

Comment puis-je ajouter DateFrom dans exists filtre?

+0

version de ElasticSearch utilisez-vous? –

+0

@TobiasGassmann: 5,5 – Dinosaurius

Répondre

1

Vous pouvez ajouter plusieurs critères exists:

"query": { 
    "bool": { 
     "filter": [ 
     { 
     "exists": { 
      "field": "DateFrom" 
     } 
     }, 
     { 
     "exists": { 
      "field": "DateTo" 
     } 
     }, 
     { 
     "script": { 
      "script": { 
      "inline": "doc['DateTo'].value - doc['DateFrom'].value > 0" 
      } 
     } 
     } 
     ] 
    } 
    } 
+0

Ah, d'accord. Puis-je aussi ajouter le filtre que '" doc ['DateTo']. Value - doc ['DateFrom']. Value "' devrait être une valeur numérique positive? – Dinosaurius

+0

Voir ma mise à jour – Val