2016-04-18 11 views
0

Ich versuche, die Filteraggregation zu verwenden, um die Anzahl bestimmter Elemente in meinem Index zu erhalten. Aber es funktioniert nicht mit dem Fehler - query malformed, no field after start_objectElasticsearch Filter-Aggregation - Abfrage fehlerhaft, kein Feld nach Start_Objekt

{ 
    "aggs": { 
    "actions": { 
     "filters": { 
     "filters": { 
      "profile_creates": { 
      "query": { 
       "querystring": "request_method:POST AND path:profile" 
      } 
      }, 
      "profile_edits": { 
      "query": { 
       "querystring": "request_method:PUT AND path:profile" 
      } 
      } 
     } 
     } 
    } 
    } 
} 

Ich kann nicht sehen, was mit dieser Abfrage falsch ist. Kann jemand helfen?

Ich bin mit Elasticsearch 1.7.1

Dies ist die Ausnahme

[2016-04-18 05:27:09,410][DEBUG][action.search.type  ] [Chance] All shards failed for phase: [query] 
org.elasticsearch.transport.RemoteTransportException: [Spitfire][inet[/:9300]][indices:data/read/search[phase/query]] 
Caused by: org.elasticsearch.search.SearchParseException: [server-logs][7]: from[-1],size[-1]: Parse Failure [Failed to parse source [{ 
    "aggs": { 
    "actions": { 
     "filters": { 
     "filters": { 
      "profilecreate": { 
      "query": { 
       "querystring": "request_method:POST" 
      } 
      }, 
      "profileedit": { 
      "query": { 
       "querystring": "request_method:PUT" 
      } 
      } 
     } 
     } 
    } 
    } 
}]] 
     at org.elasticsearch.search.SearchService.parseSource(SearchService.java:747) 
     at org.elasticsearch.search.SearchService.createContext(SearchService.java:572) 
     at org.elasticsearch.search.SearchService.createAndPutContext(SearchService.java:544) 
     at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:306) 
     at org.elasticsearch.search.action.SearchServiceTransportAction$SearchQueryTransportHandler.messageReceived(SearchServiceTransportAction.java:776) 
     at org.elasticsearch.search.action.SearchServiceTransportAction$SearchQueryTransportHandler.messageReceived(SearchServiceTransportAction.java:767) 
     at org.elasticsearch.transport.netty.MessageChannelHandler$RequestHandler.doRun(MessageChannelHandler.java:279) 
     at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:36) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
     at java.lang.Thread.run(Thread.java:745) 
Caused by: org.elasticsearch.index.query.QueryParsingException: [server-logs] [_na] query malformed, no field after start_object 
     at org.elasticsearch.index.query.QueryParseContext.parseInnerQuery(QueryParseContext.java:298) 
     at org.elasticsearch.index.query.QueryFilterParser.parse(QueryFilterParser.java:47) 
     at org.elasticsearch.index.query.QueryParseContext.executeFilterParser(QueryParseContext.java:371) 
     at org.elasticsearch.index.query.QueryParseContext.parseInnerFilter(QueryParseContext.java:352) 
     at org.elasticsearch.index.query.IndexQueryParserService.parseInnerFilter(IndexQueryParserService.java:295) 
     at org.elasticsearch.search.aggregations.bucket.filters.FiltersParser.parse(FiltersParser.java:63) 
     at org.elasticsearch.search.aggregations.AggregatorParsers.parseAggregators(AggregatorParsers.java:148) 
     at org.elasticsearch.search.aggregations.AggregatorParsers.parseAggregators(AggregatorParsers.java:78) 
     at org.elasticsearch.search.aggregations.AggregationParseElement.parse(AggregationParseElement.java:60) 
     at org.elasticsearch.search.SearchService.parseSource(SearchService.java:731) 
     ... 10 more 

Antwort

5

Sie query innerhalb der query_string Abfrage einen Unterstrich in query_string und ein anderes Schlüsselwort fehlt. Sie müssen es so schreiben:

{ 
    "aggs": { 
    "actions": { 
     "filters": { 
     "filters": { 
      "profile_creates": { 
      "query": { 
       "query_string": {"query": "request_method:POST AND path:profile"} 
      } 
      }, 
      "profile_edits": { 
      "query": { 
       "query_string": {"query": "request_method:PUT AND path:profile"} 
      } 
      } 
     } 
     } 
    } 
    } 
} 
+0

Das reparierte es. Tausend Dank :) – elssar

+0

Schön, dass es geholfen hat! – Val