Java 类org.elasticsearch.action.search.ClearScrollRequest 实例源码

项目:elasticsearch_my    文件:RestClearScrollAction.java   
@Override
public RestChannelConsumer prepareRequest(final RestRequest request, final NodeClient client) throws IOException {
    String scrollIds = request.param("scroll_id");
    ClearScrollRequest clearRequest = new ClearScrollRequest();
    clearRequest.setScrollIds(Arrays.asList(splitScrollIds(scrollIds)));
    request.withContentOrSourceParamParserOrNull((xContentParser -> {
        if (xContentParser != null) {
            // NOTE: if rest request with xcontent body has request parameters, these parameters does not override xcontent value
            clearRequest.setScrollIds(null);
            try {
                buildFromContent(xContentParser, clearRequest);
            } catch (IOException e) {
                throw new IllegalArgumentException("Failed to parse request body", e);
            }
        }
    }));

    return channel -> client.clearScroll(clearRequest, new RestStatusToXContentListener<>(channel));
}
项目:elasticsearch_my    文件:RestClearScrollAction.java   
public static void buildFromContent(XContentParser parser, ClearScrollRequest clearScrollRequest) throws IOException {
    if (parser.nextToken() != XContentParser.Token.START_OBJECT) {
        throw new IllegalArgumentException("Malformed content, must start with an object");
    } else {
        XContentParser.Token token;
        String currentFieldName = null;
        while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) {
            if (token == XContentParser.Token.FIELD_NAME) {
                currentFieldName = parser.currentName();
            } else if ("scroll_id".equals(currentFieldName) && token == XContentParser.Token.START_ARRAY) {
                while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) {
                    if (token.isValue() == false) {
                        throw new IllegalArgumentException("scroll_id array element should only contain scroll_id");
                    }
                    clearScrollRequest.addScrollId(parser.text());
                }
            } else {
                throw new IllegalArgumentException("Unknown parameter [" + currentFieldName
                        + "] in request body or parameter is of the wrong type[" + token + "] ");
            }
        }
    }
}
项目:elasticsearch_my    文件:ClientScrollableHitSource.java   
@Override
public void clearScroll(String scrollId, Runnable onCompletion) {
    ClearScrollRequest clearScrollRequest = new ClearScrollRequest();
    clearScrollRequest.addScrollId(scrollId);
    /*
     * Unwrap the client so we don't set our task as the parent. If we *did* set our ID then the clear scroll would be cancelled as
     * if this task is cancelled. But we want to clear the scroll regardless of whether or not the main request was cancelled.
     */
    client.unwrap().clearScroll(clearScrollRequest, new ActionListener<ClearScrollResponse>() {
        @Override
        public void onResponse(ClearScrollResponse response) {
            logger.debug("Freed [{}] contexts", response.getNumFreed());
            onCompletion.run();
        }

        @Override
        public void onFailure(Exception e) {
            logger.warn((Supplier<?>) () -> new ParameterizedMessage("Failed to clear scroll [{}]", scrollId), e);
            onCompletion.run();
        }
    });
}
项目:Elasticsearch    文件:RestClearScrollAction.java   
@Override
public void handleRequest(final RestRequest request, final RestChannel channel, final Client client) {
    String scrollIds = request.param("scroll_id");
    ClearScrollRequest clearRequest = new ClearScrollRequest();
    clearRequest.setScrollIds(Arrays.asList(splitScrollIds(scrollIds)));
    if (RestActions.hasBodyContent(request)) {
        XContentType type = RestActions.guessBodyContentType(request);
       if (type == null) {
           scrollIds = RestActions.getRestContent(request).toUtf8();
           clearRequest.setScrollIds(Arrays.asList(splitScrollIds(scrollIds)));
       } else {
           // NOTE: if rest request with xcontent body has request parameters, these parameters does not override xcontent value
           clearRequest.setScrollIds(null);
           buildFromContent(RestActions.getRestContent(request), clearRequest);
       }
    }

    client.clearScroll(clearRequest, new RestStatusToXContentListener<ClearScrollResponse>(channel));
}
项目:Elasticsearch    文件:RestClearScrollAction.java   
public static void buildFromContent(BytesReference content, ClearScrollRequest clearScrollRequest) {
    try (XContentParser parser = XContentHelper.createParser(content)) {
        if (parser.nextToken() != XContentParser.Token.START_OBJECT) {
            throw new IllegalArgumentException("Malformed content, must start with an object");
        } else {
            XContentParser.Token token;
            String currentFieldName = null;
            while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) {
                if (token == XContentParser.Token.FIELD_NAME) {
                    currentFieldName = parser.currentName();
                } else if ("scroll_id".equals(currentFieldName) && token == XContentParser.Token.START_ARRAY) {
                    while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) {
                        if (token.isValue() == false) {
                            throw new IllegalArgumentException("scroll_id array element should only contain scroll_id");
                        }
                        clearScrollRequest.addScrollId(parser.text());
                    }
                } else {
                    throw new IllegalArgumentException("Unknown parameter [" + currentFieldName + "] in request body or parameter is of the wrong type[" + token + "] ");
                }
            }
        }
    } catch (IOException e) {
        throw new IllegalArgumentException("Failed to parse request body", e);
    }
}
项目:elasticsearch-http    文件:ClearScrollActionHandler.java   
public void execute(ClearScrollRequest request, final ActionListener<ClearScrollResponse> listener) {
    logger.debug("clear scroll request {}", request);
    try {
        RequestUriBuilder uriBuilder = new RequestUriBuilder()
                .addEndpoint("_search/scroll");

        uriBuilder.addQueryParameter("scroll_id", Strings.collectionToCommaDelimitedString(request.getScrollIds()));
        httpClient.getHttpClient().submit(HttpClientRequest.createDelete(uriBuilder.toString()))
                .flatMap(HANDLES_404)
                .flatMap(new Func1<HttpClientResponse<ByteBuf>, Observable<ClearScrollResponse>>() {
                    @Override
                    public Observable<ClearScrollResponse> call(final HttpClientResponse<ByteBuf> response) {
                        return response.getContent().flatMap(new Func1<ByteBuf, Observable<ClearScrollResponse>>() {
                            @Override
                            public Observable<ClearScrollResponse> call(ByteBuf byteBuf) {
                                return ClearScrollResponse.parse(response.getStatus().code());
                            }
                        });
                    }
                })
                .single()
                .subscribe(new ListenerCompleterObserver<>(listener));
    } catch (Exception e) {
        listener.onFailure(e);
    }
}
项目:elasticsearch_my    文件:RestClearScrollActionTests.java   
public void testParseClearScrollRequest() throws Exception {
    XContentParser content = createParser(XContentFactory.jsonBuilder()
            .startObject()
                .array("scroll_id", "value_1", "value_2")
            .endObject());
    ClearScrollRequest clearScrollRequest = new ClearScrollRequest();
    RestClearScrollAction.buildFromContent(content, clearScrollRequest);
    assertThat(clearScrollRequest.scrollIds(), contains("value_1", "value_2"));
}
项目:elasticsearch_my    文件:RestClearScrollActionTests.java   
public void testParseClearScrollRequestWithUnknownParamThrowsException() throws Exception {
    XContentParser invalidContent = createParser(XContentFactory.jsonBuilder()
            .startObject()
                .array("scroll_id", "value_1", "value_2")
                .field("unknown", "keyword")
            .endObject());
    ClearScrollRequest clearScrollRequest = new ClearScrollRequest();

    Exception e = expectThrows(IllegalArgumentException.class,
            () -> RestClearScrollAction.buildFromContent(invalidContent, clearScrollRequest));
    assertThat(e.getMessage(), startsWith("Unknown parameter [unknown]"));
}
项目:elasticsearch_my    文件:ParentTaskAssigningClientTests.java   
public void testSetsParentId() {
    TaskId[] parentTaskId = new TaskId[] {new TaskId(randomAsciiOfLength(3), randomLong())};

    // This mock will do nothing but verify that parentTaskId is set on all requests sent to it.
    NoOpClient mock = new NoOpClient(getTestName()) {
        @Override
        protected <     Request extends ActionRequest,
                        Response extends ActionResponse,
                        RequestBuilder extends ActionRequestBuilder<Request, Response, RequestBuilder>
                    > void doExecute( Action<Request, Response, RequestBuilder> action, Request request,
                        ActionListener<Response> listener) {
            assertEquals(parentTaskId[0], request.getParentTask());
            super.doExecute(action, request, listener);
        }
    };
    try (ParentTaskAssigningClient client = new ParentTaskAssigningClient(mock, parentTaskId[0])) {
        // All of these should have the parentTaskId set
        client.bulk(new BulkRequest());
        client.search(new SearchRequest());
        client.clearScroll(new ClearScrollRequest());

        // Now lets verify that unwrapped calls don't have the parentTaskId set
        parentTaskId[0] = TaskId.EMPTY_TASK_ID;
        client.unwrap().bulk(new BulkRequest());
        client.unwrap().search(new SearchRequest());
        client.unwrap().clearScroll(new ClearScrollRequest());
    }
}
项目:Elasticsearch    文件:SearchServiceTransportAction.java   
public void sendFreeContext(DiscoveryNode node, long contextId, ClearScrollRequest request, final ActionListener<SearchFreeContextResponse> listener) {
    transportService.sendRequest(node, FREE_CONTEXT_SCROLL_ACTION_NAME, new ScrollFreeContextRequest(request, contextId), new ActionListenerResponseHandler<SearchFreeContextResponse>(listener) {
        @Override
        public SearchFreeContextResponse newInstance() {
            return new SearchFreeContextResponse();
        }
    });
}
项目:Elasticsearch    文件:SearchServiceTransportAction.java   
public void sendClearAllScrollContexts(DiscoveryNode node, ClearScrollRequest request, final ActionListener<TransportResponse> listener) {
    transportService.sendRequest(node, CLEAR_SCROLL_CONTEXTS_ACTION_NAME, new ClearScrollContextsRequest(request), new ActionListenerResponseHandler<TransportResponse>(listener) {
        @Override
        public TransportResponse newInstance() {
            return TransportResponse.Empty.INSTANCE;
        }
    });
}
项目:elasticsearch-http    文件:SearchScrollActionHandlerTest.java   
@After
public void clear_scrolls() {
    if(!scrollIds.isEmpty()) {
        ClearScrollRequest clearScrollRequest = new ClearScrollRequest();
        clearScrollRequest.scrollIds(scrollIds);
        transportClient.clearScroll(clearScrollRequest).actionGet();
        scrollIds.clear();
    }
}
项目:elasticsearch-http    文件:ClearScrollActionHandlerTest.java   
@Test
public void should_clear_scroll() throws IOException, ExecutionException, InterruptedException {
    SearchRequest searchRequest = new SearchRequest(THE_INDEX).types(THE_TYPE).source(new SearchSourceBuilder().query(matchAllQuery())).scroll("1m");
    SearchResponse searchResponse = httpClient.search(searchRequest).get();

    String scrollId = searchResponse.getScrollId();
    Assertions.assertThat(scrollId).isNotEmpty();

    ClearScrollRequest clearScrollRequest = new ClearScrollRequest();
    clearScrollRequest.addScrollId(scrollId);
    ClearScrollResponse response = httpClient.clearScroll(clearScrollRequest).get();

    Assertions.assertThat(response.isSucceeded()).isTrue();
}
项目:elasticsearch-http    文件:ClearScrollActionHandlerTest.java   
@Test
public void should_return_failed_if_scroll_does_not_exists() throws IOException, ExecutionException, InterruptedException {
    ClearScrollRequest clearScrollRequest = new ClearScrollRequest();
    clearScrollRequest.addScrollId("cXVlcnlUaGVuRmV0Y2g7NTs2OmZXdGUtMmVkVEpteHBDa2RFSVNoZGc7ODpmV3RlLTJlZFRKbXhwQ2tkRUlTaGRnOzk6Zld0ZS0yZWRUSm14cENrZEVJU2hkZzs3OmZXdGUtMmVkVEpteHBDa2RFSVNoZGc7MTA6Zld0ZS0yZWRUSm14cENrZEVJU2hkZzswOw");
    ClearScrollResponse response = httpClient.clearScroll(clearScrollRequest).get();

    Assertions.assertThat(response.isSucceeded()).isFalse();
}
项目:metamodel    文件:ElasticSearchRestClient.java   
ActionResponse execute(final ActionRequest request) throws IOException {
    if (request instanceof BulkRequest) {
        return bulk((BulkRequest) request);
    } else if (request instanceof IndexRequest) {
        return index((IndexRequest) request);
    } else if (request instanceof DeleteRequest) {
        return delete((DeleteRequest) request);
    } else if (request instanceof ClearScrollRequest) {
        return clearScroll((ClearScrollRequest) request);
    } else if (request instanceof SearchScrollRequest) {
        return searchScroll((SearchScrollRequest) request);
    }

    return null;
}
项目:metamodel    文件:ElasticSearchRestDataSet.java   
@Override
public void closeNow() {
    final String scrollId = _searchResponse.getScrollId();
    final ClearScrollRequest clearScrollRequest = new ClearScrollRequest();
    clearScrollRequest.addScrollId(scrollId);
    try {
        _client.execute(clearScrollRequest);
    } catch (IOException e) {
        logger.warn("Could not clear scroll.", e);
    }
}
项目:elasticsearch_my    文件:AbstractClient.java   
@Override
public void clearScroll(ClearScrollRequest request, ActionListener<ClearScrollResponse> listener) {
    execute(ClearScrollAction.INSTANCE, request, listener);
}
项目:elasticsearch_my    文件:AbstractClient.java   
@Override
public ActionFuture<ClearScrollResponse> clearScroll(ClearScrollRequest request) {
    return execute(ClearScrollAction.INSTANCE, request);
}
项目:Elasticsearch    文件:SearchServiceTransportAction.java   
ScrollFreeContextRequest(ClearScrollRequest request, long id) {
    this((TransportRequest) request, id);
}
项目:elasticsearch-java-client    文件:DummyClient.java   
@Override
public void clearScroll(ClearScrollRequest request,
        ActionListener<ClearScrollResponse> listener) {
    // TODO Auto-generated method stub

}
项目:elasticsearch-java-client    文件:DummyClient.java   
@Override
public ActionFuture<ClearScrollResponse> clearScroll(ClearScrollRequest request) {
    // TODO Auto-generated method stub
    return null;
}
项目:elasticsearch-http    文件:HttpClient.java   
public void clearScroll(ClearScrollRequest request, ActionListener<ClearScrollResponse> listener) {
    clearScrollActionHandler.execute(request, listener);
}
项目:elasticsearch-http    文件:HttpClient.java   
public Future<ClearScrollResponse> clearScroll(ClearScrollRequest request) {
    PlainActionFuture<ClearScrollResponse> future = PlainActionFuture.newFuture();
    clearScroll(request, future);
    return future;
}
项目:elasticsearch_my    文件:Client.java   
/**
 * Clears the search contexts associated with specified scroll ids.
 */
ActionFuture<ClearScrollResponse> clearScroll(ClearScrollRequest request);
项目:elasticsearch_my    文件:Client.java   
/**
 * Clears the search contexts associated with specified scroll ids.
 */
void clearScroll(ClearScrollRequest request, ActionListener<ClearScrollResponse> listener);