2017-09-20 2 views
0
in einem bestimmten Zustand zu arbeiten

Ich brauche die folgende Abfrage NEST zu liefern in der Lage sein mit:fehlt() -Methode DateHistogramAggregationDescriptor nicht scheint nicht

GET /blabla/_search 
{ 
    "size": 0, 
    "aggs": { 
    "groupby": { 
     "date_histogram": { 
     "field": "CLOSED_DATE", 
     "interval": "month", 
     "format": "yyyyMM", 
     "min_doc_count": 1, 
     "time_zone": "UTC", 
     "missing": "100001" 
     } 
    } 
    } 
} 

Die obstacule zu bekommen dort die fehlende Methode. Es erhält als Parameter den Ersatz für den fehlenden Wert. Deshalb kam ich mit diesem Code auf:

return a => a.DateHistogram(level.ToString(), dh => dh 
.Field(param.Item1)                
.Interval(param.Item2)                 
.Format(param.Item3)                 
.TimeZone(timeZone)                 
.MinimumDocumentCount(minimumDocumentCount)                 
.Missing(new DateTime())); 

Leider ist es doesn; t Arbeit, wie sie tatsächlich diese Abfrage generiert:

{ 
    "size": 0, 
    "aggs": { 
    "groupby": { 
     "date_histogram": { 
     "field": "CLOSED_DATE", 
     "interval": "month", 
     "format": "yyyyMM", 
     "min_doc_count": 0, 
     "time_zone": "UTC", 
     "missing": "0001-01-01T00:00:00" 
     } 
    } 
    } 
} 

Offenbar ist das Format das Problem hier. Wie kann ich das umgehen?

Prost!

+0

Was ist '100001' im Kontext sein soll eines Datums? – Val

+0

@Val Januar im Jahr 1000? :) –

+1

Kein Scherz @RussCam ;-) – Val

Antwort

1

Das sieht wie ein Fehler im Client aus; I have added an issue to address this.

In der Zwischenzeit können Sie diese umgehen, indem Sie das Format als

Angabe
.Format(param.Item3 + "||date_optional_time") 

so dass Elasticsearch kann eine serialisierte DateTime im Format deserialisieren yyyy-MM-ddThh:mm:ss

Verwandte Themen