ElasticSearch备考 -- Async search

一、题目

通过异步方式查询earthquakes索引下Magnitude大于5的数据

二、思考

正常的查询大家可能会用的多一点,这种异步查询为数据量比较大的查询在后台执行,不用同步等待结果,待执行完成在获取结果。

三、解题

Step 1、准备基础数据

bash 复制代码
# DELETE earthquakes
PUT earthquakes

# 初始化数据
POST earthquakes/_bulk
{"index":{"_id":1}}
{"DateTime":"2016-01-01 12:12:12", "Magnitude":4.56}
{"index":{"_id":2}}
{"DateTime":"2016-01-01 15:12:12", "Magnitude":6.46}
{"index":{"_id":3}}
{"DateTime":"2016-02-02 13:12:12", "Magnitude":4}
{"index":{"_id":4}}
{"DateTime":"2016-03-02 13:12:12", "Magnitude":6}

Step 2、执行异步查询

注意:使用的api是_async_search

bash 复制代码
POST earthquakes/_async_search?size=0
{
  "query": {
    "range": {
      "Magnitude": {
        "gte": 5
      }
    }
  }
}

Step 3、异步获取结果

在官网通过的api说明中,可以获取到一个id,然后通过这个ID可以获取异步执行的结果,但是由于我本地没有这么多的数据集,无法形成一个正常的异步查询。暂且通过官网API提供的实例进行假设练习。官网API实例返回异步查询结果如下

bash 复制代码
{
  "id" : "FmRldE8zREVEUzA2ZVpUeGs2ejJFUFEaMkZ5QTVrSTZSaVN3WlNFVmtlWHJsdzoxMDc=", 
  "is_partial" : true, 
  "is_running" : true, 
  "start_time_in_millis" : 1583945890986,
  "expiration_time_in_millis" : 1584377890986,
  "response" : {
    "took" : 1122,
    "timed_out" : false,
    "num_reduce_phases" : 0,
    "_shards" : {
      "total" : 562, 
      "successful" : 3, 
      "skipped" : 0,
      "failed" : 0
    },
    "hits" : {
      "total" : {
        "value" : 157483, 
        "relation" : "gte"
      },
      "max_score" : null,
      "hits" : [ ]
    }
  }
}

在通过get方式获取对应异步结果,模版为 get /_async_search/{id}

bash 复制代码
GET /_async_search/FmRldE8zREVEUzA2ZVpUeGs2ejJFUFEaMkZ5QTVrSTZSaVN3WlNFVmtlWHJsdzoxMDc=

还可以通过其他命令例如:

查询异步执行状态,API模版为 GET /_async_search/status/{id}

bash 复制代码
GET /_async_search/status/FmRldE8zREVEUzA2ZVpUeGs2ejJFUFEaMkZ5QTVrSTZSaVN3WlNFVmtlWHJsdzoxMDc=

删除异步执行,API模版为 DELETE /_async_search/{id}

bash 复制代码
DELETE /_async_search/FmRldE8zREVEUzA2ZVpUeGs2ejJFUFEaMkZ5QTVrSTZSaVN3WlNFVmtlWHJsdzoxMDc=

四、总结

同步查询和异步查询API对比记忆

  • 异步查询使用_async_search
  • 同步查询使用_search

参考资料

送一波福利:

福利一

有需要内推JD的同学,可以私信或留言,我帮您内推,流程快!!!

有需要内推JD的同学,可以私信或留言,我帮您内推,流程快!!!

有需要内推JD的同学,可以私信或留言,我帮您内推,流程快!!!

福利二

福利三

相关推荐
敬往事一杯酒哈4 小时前
海康 AGV 导航读码器学习
学习
问商十三载5 小时前
AI引擎生成式优化实践:刑事辩护律师团队IP构建
大数据·人工智能
qq_284274056 小时前
机械原理笔记:平面机构自由度计算(复合铰链、局部自由度、虚约束)与四杆机构入门(含考点)
笔记·学习·平面·自动化·制造
会议咨询6 小时前
2026年大数据、信息系统与智能通信国际会议(BDIIC 2026)
大数据·信息系统·智能通信
Raas1006 小时前
MAI Gateway(魔芋企业级AI网关)能力解析:AI网关能做故障转移吗?AI网关核心功能详解
大数据·人工智能·网关·ai·gateway·mai gateway
qq_284274057 小时前
数控铣床与加工中心笔记:铣刀与刀柄系统、G54试切对刀、镜像加工指令、孔加工工艺(钻扩铰镗)与固定循环G73/G83/G81/G76/G87/G84
笔记·学习·自动化·制造
IT研究所7 小时前
AI-ITR平台如何减少客户问题反复升级?
大数据·运维·人工智能·低代码·自然语言处理·安全架构·企微
回眸&啤酒鸭8 小时前
【回眸】OpenSwarm 多智能体协作系统实战指南
大数据·前端·人工智能
Titan20248 小时前
MySQL访问个人学习笔记
笔记·学习·mysql
大大大大晴天8 小时前
每天认识一个组件:Apache DolphinScheduler
大数据