diff --git a/core/src/main/java/org/elasticsearch/action/admin/indices/cache/clear/ClearIndicesCacheRequest.java b/core/src/main/java/org/elasticsearch/action/admin/indices/cache/clear/ClearIndicesCacheRequest.java index 3a0795e201e22..d53377b50d209 100644 --- a/core/src/main/java/org/elasticsearch/action/admin/indices/cache/clear/ClearIndicesCacheRequest.java +++ b/core/src/main/java/org/elasticsearch/action/admin/indices/cache/clear/ClearIndicesCacheRequest.java @@ -35,6 +35,7 @@ public class ClearIndicesCacheRequest extends BroadcastRequest parsedQueryCache() { return Optional.ofNullable(parsedQueryCache); } + public Optional queryBuilderRewriteCache() { + return Optional.ofNullable(queryBuilderRewriteCache); + } + public IndexFieldDataService fieldData() { return indexFieldData; } diff --git a/core/src/main/java/org/elasticsearch/rest/action/admin/indices/RestClearIndicesCacheAction.java b/core/src/main/java/org/elasticsearch/rest/action/admin/indices/RestClearIndicesCacheAction.java index f5ecb9b7cad9a..e7b9ba378c6ab 100644 --- a/core/src/main/java/org/elasticsearch/rest/action/admin/indices/RestClearIndicesCacheAction.java +++ b/core/src/main/java/org/elasticsearch/rest/action/admin/indices/RestClearIndicesCacheAction.java @@ -51,19 +51,19 @@ public RestClearIndicesCacheAction(Settings settings, RestController controller) @Override public RestChannelConsumer prepareRequest(final RestRequest request, final NodeClient client) throws IOException { ClearIndicesCacheRequest clearIndicesCacheRequest = new ClearIndicesCacheRequest( - Strings.splitStringByCommaToArray(request.param("index"))); + Strings.splitStringByCommaToArray(request.param("index"))); clearIndicesCacheRequest.indicesOptions(IndicesOptions.fromRequest(request, clearIndicesCacheRequest.indicesOptions())); fromRequest(request, clearIndicesCacheRequest); return channel -> - client.admin().indices().clearCache(clearIndicesCacheRequest, new RestBuilderListener(channel) { - @Override - public RestResponse buildResponse(ClearIndicesCacheResponse response, XContentBuilder builder) throws Exception { - builder.startObject(); - buildBroadcastShardsHeader(builder, request, response); - builder.endObject(); - return new BytesRestResponse(OK, builder); - } - }); + client.admin().indices().clearCache(clearIndicesCacheRequest, new RestBuilderListener(channel) { + @Override + public RestResponse buildResponse(ClearIndicesCacheResponse response, XContentBuilder builder) throws Exception { + builder.startObject(); + buildBroadcastShardsHeader(builder, request, response); + builder.endObject(); + return new BytesRestResponse(OK, builder); + } + }); } @Override @@ -86,9 +86,12 @@ public static ClearIndicesCacheRequest fromRequest(final RestRequest request, Cl if (Fields.RECYCLER.match(entry.getKey())) { clearIndicesCacheRequest.recycler(request.paramAsBoolean(entry.getKey(), clearIndicesCacheRequest.recycler())); } - if(Fields.PARSED_QUERY_CACHE.match(entry.getKey())) { + if (Fields.PARSED_QUERY_CACHE.match(entry.getKey())) { clearIndicesCacheRequest.parsedQueryCache(request.paramAsBoolean(entry.getKey(), clearIndicesCacheRequest.parsedQueryCache())); } + if (Fields.QUERY_BUILDER_CACHE.match(entry.getKey())) { + clearIndicesCacheRequest.queryBuilderRewriteCache(request.paramAsBoolean(entry.getKey(), clearIndicesCacheRequest.queryBuilderRewriteCache())); + } if (Fields.FIELDS.match(entry.getKey())) { clearIndicesCacheRequest.fields(request.paramAsStringArray(entry.getKey(), clearIndicesCacheRequest.fields())); } @@ -102,6 +105,7 @@ public static class Fields { public static final ParseField REQUEST = new ParseField("request", "request_cache"); public static final ParseField FIELD_DATA = new ParseField("field_data", "fielddata"); public static final ParseField PARSED_QUERY_CACHE = new ParseField("parsed_query", "parsed_query_cache"); + public static final ParseField QUERY_BUILDER_CACHE = new ParseField("query_builder", "query_builder_cache"); public static final ParseField RECYCLER = new ParseField("recycler"); public static final ParseField FIELDS = new ParseField("fields"); }