2016-04-20 8 views
-1

Ich migriere von Elasticsearch Version 1.4.2 zu 2.x.Elastic search 2.0 migration: "inFilter" entspricht

Da in 2.x einige Änderungen aufgetreten sind und einige der APIs entfernt wurden, bricht mein aktueller Code ab.

Ich suche nach dem Äquivalent von inFilter Filter in Version 2.x.

Client client = CerridSearchClientFactory.getInstance().getClient(); 
     SearchRequestBuilder requestBuilder1 = client.prepareSearch(<index name>); 
       Double[] notNan = new Double[1]; 
       notNan[0] = Double.NaN; 
        FilterAggregationBuilder filter = AggregationBuilders.filter(<filter name>).filter(FilterBuilders.notFilter(FilterBuilders.inFilter(<field name> , notNan))); 
       filter = filter.subAggregation(AggregationBuilders.stats(<field name>) 
          .field(<field name>)); 
       SearchResponse sr = requestBuilder.addAggregation(filter).execute().actionGet(); 

ich Durchführung Statistik Aggregation mit Filter darauf. Ich mache auch Summen-, Min-, Max-Aggregation mit Filteraggregation mit nicht in gleicher Abfrage.

+0

Es wäre hilfreich, wenn Sie ein konkretes Beispiel der 1.4-Abfrage, die Sie haben, einbeziehen und angeben, was Sie versucht haben, es in 2.x zu konvertieren. Vieles wird (oder könnte zumindest) von den Besonderheiten abhängen. – Jeroen

+0

Ich führe eine Filteraggregation durch; FilterBuilders.notFilter (FilterBuilders.inFilter (, notNan))); Wo ich versuche, einige Werte einzuschließen oder auszuschließen. –

+0

Okay. Aber ich wiederhole meinen vorherigen Kommentar: Wir können viel besser helfen, wenn Sie Ihrem Beitrag ein konkretes Beispiel hinzufügen. – Jeroen

Antwort

0

inFilter war nur ein Alias ​​für die Begriffe Filter.

Da die Filter entfernt wurden, sollten Sie die terms query verwenden.

Verwandte Themen