JAVA实例:Clear Scroll API


Clear Scroll API

当滚动超时时,Search Scroll API使用的搜索上下文会自动删除。但是建议使用Clear Scroll API,一旦不再需要搜索上下文,就立即释放它们。

ClearScrollRequest

可以按如下方式创建一个ClearScrollRequest:

ClearScrollRequest request = new ClearScrollRequest(); //创建一个新的ClearScrollRequest
request.addScrollId(scrollId); //将滚动id添加到要清除的滚动标识符列表中

提供滚动标识符

ClearScrollRequest允许在单个请求中清除一个或多个滚动标识符。

滚动标识符可以一个接一个地添加到请求中:

request.addScrollId(scrollId);

或者一起使用:

request.setScrollIds(scrollIds);

同步方式执行

ClearScrollResponse response = client.clearScroll(request, RequestOptions.DEFAULT);

异步方式执行

ClearScrollRequest的异步执行需要将ClearScrollRequest实例和ActionListener实例都传递给异步方法:

client.clearScrollAsync(request, RequestOptions.DEFAULT, listener);

异步方法不会阻塞并立即返回。如果执行成功,则使用onResponse方法回调操作侦听器,如果执行失败,则使用onFailure方法回调操作侦听器。

一个典型的ClearScrollResponse监听器像下面这样:

ActionListener<ClearScrollResponse> listener =
        new ActionListener<ClearScrollResponse>() {
    @Override
    public void onResponse(ClearScrollResponse clearScrollResponse) {
        //成功的时候调用
    }

    @Override
    public void onFailure(Exception e) {
        //失败的时候调用
    }
};

ClearScrollResponse

返回的ClearScrollResponse允许检索关于发布的搜索上下文的信息:

boolean success = response.isSucceeded(); //如果请求成功返回true
int released = response.getNumFreed(); //返回发布的搜索上下文的数量

results matching ""

    No results matching ""