2016-08-17 12 views
0

私はこのクエリを持っています。日付で弾性検索

{ 
    "filter": { 
    "bool": { 
     "must": [ 
     { 
      "term": { 
      "active": 1 
      } 
     } 
     ], 
     "should": [ 
     { 
      "range": { 
      "datum": { 
       "lt": "17/08/16", 
       "format": "dd/MM/yyyy" 
      } 
      } 
     } 
     ] 
    }, 
    "sort": { 
     "datum": "asc" 
    } 
    } 
} 

それは

は、検索元の解析に失敗しました。私を与えます。フィールド名を期待しますが、最初の問題である [START_OBJECT] "}]

を得ました。そして、私はイベントで検索し、唯一の将来の出来事または進行中のを見つける必要があります。

イベントが2日を持っています。

データム=イベントの開始

Datum_toイベントの終わり=(それが空の場合、データは、日付を終了する)Elasticsearcの

答えて

1

バージョンあなたは使っていますか?

バージョン2.0以降は、最上位のfilter節はもうありません。クエリとフィルタが1つにマージされました。Breaking changesを参照してください。

例えば、2つのshould節はトリックを行う必要があり、将来的に開始または終了していない持ってイベントを検索するには:

{ 
    "query": { 
    "bool": { 
     "should": [ 
     { 
      "range": { 
      "Datum": { 
       "gt": "now" 
      } 
      } 
     }, 
     { 
      "range": { 
      "Datum_to": { 
       "gt": "now" 
      } 
      } 
     } 
     ] 
    } 
    } 
}