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的同学,可以私信或留言,我帮您内推,流程快!!!

福利二

福利三

相关推荐
yuanxi20025 分钟前
青海共和百万千瓦光伏光热项目并网发电:大客户销售如何用价值力抓住能源大单
大数据·职场和发展·能源·创业创新·学习方法
Y3815326621 小时前
搜索 API 响应模块:featured_snippet、PAA 与 knowledge_graph 怎么用
python·搜索引擎
努力学习的代码小白2 小时前
源码学习15
学习
扶风ff2 小时前
求职笔试资料太散?用练题簿在线刷题,按岗位整理练习清单
前端·学习·小程序
W***25923 小时前
2026深度解读:Work Agent长程任务的执行机制与落地能力
大数据·人工智能
卷毛迷你猪3 小时前
快速实验篇(B07 )Session 会话化与序列
大数据·hive·hadoop
乌暮3 小时前
JVM 原理与实践:从运行时数据区到线上故障排查
java·开发语言·jvm·后端·学习·面试
卷毛迷你猪3 小时前
快速实验篇(B08)搜索词分析实战
大数据·hive·hadoop
IT研究室4 小时前
最新大数据毕业设计选题推荐-基于大数据的考研相关视频数据可视化分析-大数据-Spark-Hadoop-Bigdata
大数据·考研·课程设计
酬谢神明则必安4 小时前
git学习记录01
linux·git·学习