Elasticsearch——Clear Scroll

这篇博客介绍了Elasticsearch中如何管理和清理搜索上下文,特别是滚动API的使用。当滚动超时时,搜索上下文会自动删除,但推荐使用ClearScrollAPI主动释放资源。ClearScrollRequest允许一次性清除一个或多个滚动标识符,可通过同步或异步方式执行。成功执行后,ClearScrollResponse提供释放的搜索上下文数量等信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

滚动超时时,搜索滚动API使用的搜索上下文将自动删除。但建议使用Clear Scroll API在不再需要搜索上下文时尽快释放它们。

Clear Scroll Request

可以按如下方式创建ClearScrollRequest:

ClearScrollRequest request = new ClearScrollRequest();  (1)
request.addScrollId(scrollId);                          (2)

(1)创建一个新的 ClearScrollRequest

(2)将滚动id添加到要清除的滚动标识符列表中

  提供滚动标识符

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

滚动标识符可以逐个添加到请求中:

request.addScrollId(scrollId);

或者:

request.setScrollIds(scrollIds);

同步执行

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

异步执行

clear scroll请求的异步执行要求将ClearScrollRequest实例和ActionListener实例传递给异步方法:

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

要执行的ClearScrollRequest和执行完成时要使用的ActionListener

异步方法不会阻塞并立即返回。一旦完成,如果执行成功完成,则使用ActionListener调用onResponse方法;如果执行失败,则调用ActionListener使用onFailure方法。

ClearScrollResponse的典型侦听器如下所示:

ActionListener<ClearScrollResponse> listener =
        new ActionListener<ClearScrollResponse>() {
    @Override
    public void onResponse(ClearScrollResponse clearScrollResponse) {
        (1)
    }

    @Override
    public void onFailure(Exception e) {
        (2)
    }
};

(1)在执行成功完成时调用。响应作为参数提供

(2)发生故障时调用。引发的异常作为参数提供

Clear Scroll Response

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

boolean success = response.isSucceeded(); (1)
int released = response.getNumFreed();    (2)

(1)如果请求成功,则返回true

(2)返回已释放的搜索上下文数

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值