ES scroll查询的坑点

这篇具有很好参考价值的文章主要介绍了ES scroll查询的坑点。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. scroll 查询

scroll 查询是ES中为了解决一次获取不到全部数据的一种解决方案。

2. 使用姿势

  1. 第一次查询
GET /ip:port/table/_search/scroll?scroll=1m
{
	"query": {
		"match_all": {}
	}
}
  1. 第二次查询(第二次查询,可以不加scroll的失效时间)
GET /_search/scroll
{
	"scroll id": "*******************"
}
  1. 第2+n次访问(第三次及之后的查询必须要加scroll的失效时间)
GET /_search/scroll
{
	“scroll": "1m",
	"scroll id": "*******************"
}

2. Springboot 中用 http 方式实现 scroll 查询

  1. 首次访问
    // 构建URL
    private final static String ES_SEARCH_URL = "http://%s:%s/%s/_search?scroll=%sm";
    
    String url = String.format(ES_SEARCH_URL, ip, port, context.getTable(), holdTime)

	// 发送URL (scrpit 指的是要执行的 DSL语句)
	data = HttpUtils.doPostJson(url, script);

访问后,会得到部分或全部数据和scroll_id.

  1. 之后再访问
		// 构建URL
        String usrModel = "http://%s:%s/_search/scroll";
        String url = String.format(usrModel, ip, port);

		// 构建body
		String script = "{\n"
            + "    \"scroll\": \"" + "1m" + "\",\n"
            + "    \"scroll_id\": \"" + scrollId + "\"\n"
            + "}";
         
        // 发送请求
        data = HttpUtils.doPostJson(url, script);

注意点
scroll_id查询时,如果不带"scroll': "1m",即不带失效时间,ES不会返回scroll_id,之后再用这个scroll_id查询时可能会出现错误。
正确方式是:每次用scroll_id查询时,body中也要带上失效时间,每次查询使用上一次查询返回的scroll_id文章来源地址https://www.toymoban.com/news/detail-516060.html

到了这里,关于ES scroll查询的坑点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 关于SpringBoot集成ES Scroll API(滚动查询)的实践

    那是年初在某个交付项目,从用户侧获知了一个elastic search作为分布式数据库的一个瓶颈,那就是单次查询量超过了ES的默认单次查询上限10000。 在大部分业务下,为了执行ES的数据查询,开发者往往都直接使用了query某个条件获取数据,这些条件对应的数据大多都不会超过1

    2024年01月23日
    浏览(37)
  • ES模糊查询失效的坑,附解决方案

    最近在做需求开发的时候,有个需求,需要根据去ES中进行模糊搜索。于是首先想到了wildcard查询,根据,利用*通配符,类似于mysql中的like一样进行模糊搜索。 但是遇到了问题就是,根据单个汉字能正常模糊搜索,多个汉字就无法查询出数据。 单个汉字正常查询

    2024年02月11日
    浏览(58)
  • Elasticsearch ES操作:查询数据(全部、分页、单条)

    查询 条件查询 指定条数 返回结果

    2024年02月16日
    浏览(39)
  • 用elasticsearch head查询和删除es数据

    下图中的构成为 http://ip:port/ 索引名/索引类型/_search 请求方式为GET 这种方式是查询该索引下的所有数据 如果要查询更为详细,可以在查询条件后面跟ID,比如 http://ip:port/ 索引名/索引类型名/文档id 请求方式仍然是GET请求 如下图所示 下图是删除指定es下某一文档,其构成为

    2024年02月15日
    浏览(52)
  • elasticSearch大量数据查询导出报错解决es

    elasticsearch的client包下的HeapBufferedAsyncResponseConsumer类中传入了bufferLimit,该值 org.apache.http.nio.protocol.HttpAsyncResponseConsumer 的默认实现。在堆内存中缓冲整个响应内容,这意味着缓冲区的大小等于响应的内容长度。根据可配置的参数限制可以读取的响应的大小。如果实体长于配置

    2023年04月16日
    浏览(46)
  • Elasticsearch:ES|QL 查询中的元数据字段及多值字段

    在今天的文章里,我来介绍一下 ES|QL 里的元数据字段以及多值字段。我们可以利用这些元数据字段以及多值字段来针对我们的查询进行定制。这里例子的数据集,请参考文章 “Elasticsearch:ES|QL 快速入门”。 ES|QL 可以访问元数据字段。 目前支持的有: _index :文档所属的索引

    2024年02月04日
    浏览(61)
  • ElasticSearch如何使用以及java代码如何查询并排序ES中的数据(距离排序)

    import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.geo.GeoDistance; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.TransportAddress; import org.elasticsearch.common.unit.DistanceUnit; import org.elasticsearch.common.unit.

    2024年04月12日
    浏览(51)
  • ElasticSearch学习01——Windows10环境下ES安装经验与踩到的坑

    由于对ES基本概念和历史演进在网上随处可查,所以本文在此不做赘述.随意本文直接讲述如何安装使用ES ​ ElasticSearch是基于lucence开发的,也就是运行需要java jdk支持。所以要先安装JAVA环境。由于ElasticSearch 5.x 往后依赖于JDK 1.8的,所以最好安装JDK1.8及以上版本.具体安装方法可

    2024年02月12日
    浏览(39)
  • Elasticsearch实战(十七)---ES搜索如何使用In操作查询及如何Distinct去除重复数据

    Elasticsearch实战-ES搜索如何使用In操作查询filter过滤及如何Distinct去除重复数据 场景: ES搜索, 获取手机号是 19000001111 或者 19000003333 后者 19000004444 的人, 并且 性别是男, 且 年龄是[20-30]的人,这种查询用mysql 如何实现 ? 在mysql中会用in查询, 但是在ES中 我们实现就是 term

    2023年04月09日
    浏览(46)
  • ElasticSearch系列 - SpringBoot整合ES:实现分页搜索 from+size、search after、scroll

    01. 数据准备 ElasticSearch 向 my_index 索引中索引了 12 条文档: 02. ElasticSearch 如何查询所有文档? ElasticSearch 查询所有文档 根据查询结果可以看出,集群中总共有12个文档,hits.total.value=12, 但是在 hits 数组中只有 10 个文档。如何才能看到其他的文档? 03. ElasticSearch 如何指定搜

    2023年04月08日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包