2016-05-11 14 views
0

Ich versuche, eine Funktion zu erstellen, die mir die Anzahl der Ereignisse mit Elasticsearch zurückgibt.Elasticsearch QueryParsingException Anzahl Abfrage

Wenn ich diesen Code ausführen, wirft er zuerst eine BroadcastShardOperationFailedException und dann eine verschachtelte QueryParsingException.

Aber etwas stimmt nicht mit meiner Frage, aber ich verstehe nicht, was es sein könnte. Hier ist meine Frage:

esclient = Elasticsearch() 

countParams['body'] = {} 
countParams['body']['query']= {} 
countParams['body']['query']['filtered']= {} 
countParams['body']['query']['filtered']['filter']= {} 
countParams['body']['query']['filtered']['filter']['or']={} 

toadd['term'] = {} 
toadd['term']['log_device_id']= id["ID"] 
countParams['body']['query']['filtered']['filter']['or']= toadd 
countResponse = esclient.count(index='indexName', 
           doc_type='event', 
           body=countParams) 

Das ist nur ein Teil der Datei, aber dieser Teil nicht funktionieren und es macht mich verrückt.

Ich finde keine Dokumentation zur Zählfunktion von Elasticsearch.

Edit:

Hier die volle Ausnahmemeldung:

GET /indexName/event/_count [status:400 request:0.007s] 
TransportError(400, '{"count":0,"_shards": {"total":5,"successful":0,"failed":5,"failures": [{"index":"IndexName","shard":0,"reason":"BroadcastShardOperationFailedException[[logappclient1][0] ]; nested: QueryParsingException[[indexName] [filtered] query does not support [term]]; "},{"index":"indexName","shard":1,"reason":"BroadcastShardOperationFailedException[[indexName][1] ]; nested: QueryParsingException[[indexName] [filtered] query does not support [term]]; "},{"index":"indexName","shard":2,"reason":"BroadcastShardOperationFailedException[[indexName][2] ]; nested: QueryParsingException[[indexName] [filtered] query does not support [term]]; "},{"index":"indexName","shard":3,"reason":"BroadcastShardOperationFailedException[[indexName][3] ]; nested: QueryParsingException[[indexName] [filtered] query does not support [term]]; "},{"index":"indexName","shard":4,"reason":"BroadcastShardOperationFailedException[[logappclient1][4] ]; nested: QueryParsingException[[indexName] [filtered] query does not support [term]]; "}]}}') 

Vielen Dank für die Hilfe!

+0

Was passiert, wenn Sie ersetzen 'quere' mit' query'? – Val

+0

Danke für den Tipp, das ist ein dummer Fehler. Aber nichts ändert sich. Die Ausnahme bleibt gleich – Melody

+0

Können Sie Ihre Frage mit der vollen Ausnahme aktualisieren, die Sie erhalten? – Val

Antwort

1

wie diese versuchen:

esclient = Elasticsearch() 

countParams = { 
    'query': { 
     'filtered': { 
     'filter': { 
      'or': [ 
       { 
       'term': { 
        'log_device_id': id["ID"] 
       } 
       } 
      ] 
     } 
     } 
    } 
} 

countResponse = esclient.count(index='indexName', 
           doc_type='event', 
           body=countParams) 
+0

Ich versuche das aber nichts geändert. Ich werde dieselbe Fehlermeldung. – Melody

+0

Ich habe gerade geändert, versuchen Sie es erneut bitte – Val

+0

Es funktioniert! Vielen Dank für die Hilfe, das ist perfekt! Vielen Dank! – Melody