Elasticsearch——Clear Scroll

滚动超时时,搜索滚动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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Elasticsearch scroll 查询是一种用于处理大型数据集合的技术。它允许您在不影响性能的情况下,逐步地检索大量的搜索结果。 以下是一个基本的scroll查询的示例: ``` POST /my_index/_search?scroll=1m { "size": 100, "query": { "match" : { "title" : "elasticsearch" } } } ``` 在上面的查询中,我们指定了一个初始搜索请求,并将scroll参数设置为1分钟。我们还指定了一个"size"参数,该参数指定了每个批次要返回的文档数。在此示例中,我们将每个批次的文档数设置为100。 当我们运行此查询时,Elasticsearch将返回一个初始的搜索结果集,并为我们提供一个scroll_id。我们可以使用此scroll_id执行后续的搜索请求,以逐步检索结果。 以下是一个使用scroll_id执行后续搜索请求的示例: ``` POST /_search/scroll { "scroll": "1m", "scroll_id": "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVRMNGxKUXE2Z2lKSEFZa1VUQQ==" } ``` 在上面的查询中,我们指定了一个scroll_id参数,该参数包含之前搜索请求返回的scroll_id。我们还将scroll参数设置为1分钟,以便Elasticsearch知道我们要继续检索结果。 使用scroll查询时,需要注意以下几点: 1. 每个scroll查询请求都会消耗一些系统资源,因此不应该无限制地使用它。 2. 一旦您完成了scroll查询,您应该及时清除scroll上下文,以释放资源。 3. 如果您的查询需要对大量文档进行排序,scroll查询可能不是最佳选择。排序会增加查询的内存使用量,从而增加查询的资源消耗。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值