Elasticsearch 异步搜索 Async search 实战

r660926
发布于 2022-4-20 14:34
浏览
0收藏

Elasticsearch 异步搜索 Async search 实战-鸿蒙开发者社区
异步搜索 API 可异步执行搜索请求、监控其进度并检索可用的部分结果。

 

 •  传统检索 VS 异步检索,在数据量比较大时:

 •  传统检索可能导致超时,以至于无数据返回;或者需要等待很久,用户体验差。


异步检索,可以快速响应数据,用户无需等待。


Elasticsearch 异步搜索 Async search 实战-鸿蒙开发者社区


Elasitcsearch V7.7.0版本。

 

Elasticsearch 异步搜索 Async search 实战-鸿蒙开发者社区
异步搜索允许用户在异步搜索结果可用时检索它们,从而消除了仅在查询完全完成后才最终响应的情况。

 

Elasticsearch 异步搜索 Async search 实战-鸿蒙开发者社区


4.1 执行异步检索


执行如下操作的前提是:待异步检索的索引数据量非常大(其实小了也可以,但数据量大更契合一些)。

 

否则普通索引会直接返回结果数据。

 

拿个普通索引试验一下:

Elasticsearch 异步搜索 Async search 实战-鸿蒙开发者社区

返回结果:

Elasticsearch 异步搜索 Async search 实战-鸿蒙开发者社区

为了达到异步检索的目的,可以用推荐的测试写入数据的工具:

Elasticsearch 异步搜索 Async search 实战-鸿蒙开发者社区

你是不是也困惑,没有测试数据或者没有一定数量的测试数据?小工具来了。

产生100W+数据,一条指令:

Elasticsearch 异步搜索 Async search 实战-鸿蒙开发者社区

结果如下:

Elasticsearch 异步搜索 Async search 实战-鸿蒙开发者社区

可以结合自己业务场景优化一下,python 代码编写,很适合封装成自己的小工具。

 Elasticsearch 异步搜索 Async search 实战-鸿蒙开发者社区
有了数据,异步检索直接开搞!

Elasticsearch 异步搜索 Async search 实战-鸿蒙开发者社区

返回结果如下:

Elasticsearch 异步搜索 Async search 实战-鸿蒙开发者社区

如果看不到上述结果,说明数据量还不够大。可以再导入一些。

 

核心返回参数解释一下:

 

 •  id——可用于监控其进度、检索其结果和/或删除它的异步搜索的标识符。
 •  is_partial——当查询不再运行时,指示在所有分片上搜索是失败还是成功完成。在执行查询时,is_partial 始终设置为 true。
 •  is_running——搜索是否仍在执行中或已完成。
 •  total——总体而言,将在多少个分片上执行搜索。
 •  successful——有多少分片已成功完成搜索。


4.2 查看异步检索

Elasticsearch 异步搜索 Async search 实战-鸿蒙开发者社区

4.3 查看异步检索状态

Elasticsearch 异步搜索 Async search 实战-鸿蒙开发者社区

4.4 删除/中止异步检索

Elasticsearch 异步搜索 Async search 实战-鸿蒙开发者社区

Elasticsearch 异步搜索 Async search 实战-鸿蒙开发者社区https://www.elastic.co/guide/en/elasticsearch/reference/current/async-search.html

 

Elasticsearch 异步搜索 Async search 实战-鸿蒙开发者社区


异步搜索认证考试环节,大家了解就可以,能找到官方文档位置,知道有哪几个API。

 

实战业务环节结合业务需求去选型使用即可。但,更倾向于数据量极大的业务传统同步请求体验差的场景。

 

你实战业务场景有没有使用异步检索?欢迎留言讨论。

分类
收藏
回复
举报
回复
    相关推荐