2017-10-19 53 views
1

我在Elasticsearch以下查询:如何在Elasticsearch的多个字段上创建一个bool过滤器?

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

如何添加DateFromexists过滤器?

+0

你使用的elasticsearch的版本? –

+0

@TobiasGassmann:5.5 – Dinosaurius

回答

1

您可以添加多个exists标准:

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

啊,好的。我是否也可以添加''doc ['DateTo']。value - doc ['DateFrom']。“value”的过滤器应该是一个正数值? – Dinosaurius

+0

查看我的更新回答 – Val