<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Elasticsearch 異步搜索 Async search 實戰(zhàn)

          共 3217字,需瀏覽 7分鐘

           ·

          2021-11-10 08:17

          1、Elasticsearch 異步搜索定義

          異步搜索 API 可異步執(zhí)行搜索請求、監(jiān)控其進度并檢索可用的部分結(jié)果。

          如下的官方介紹動畫,能更加生動的介紹清楚異步檢索。

          傳統(tǒng)檢索 VS 異步檢索,在數(shù)據(jù)量比較大時:

          • 傳統(tǒng)檢索可能導(dǎo)致超時,以至于無數(shù)據(jù)返回;或者需要等待很久,用戶體驗差。
          • 異步檢索,可以快速響應(yīng)數(shù)據(jù),用戶無需等待。

          2、Elasticsearch 異步搜索發(fā)布的版本

          Elasitcsearch V7.7.0版本。

          3、Elasticsearch 異步搜索適用場景

          異步搜索允許用戶在異步搜索結(jié)果可用時檢索它們,從而消除了僅在查詢完全完成后才最終響應(yīng)的情況。

          4、Elasticsearch 異步搜索實戰(zhàn)

          4.1 執(zhí)行異步檢索

          執(zhí)行如下操作的前提是:待異步檢索的索引數(shù)據(jù)量非常大(其實小了也可以,但數(shù)據(jù)量大更契合一些)。

          否則普通索引會直接返回結(jié)果數(shù)據(jù)。

          拿個普通索引試驗一下:

          POST?kibana_sample_data_flights/_async_search?size=0
          {
          ??"sort":?[
          ????{
          ??????"timestamp":?{
          ????????"order":?"asc"
          ??????}
          ????}
          ??],
          ??"aggs":?{
          ????"sale_date":?{
          ??????"date_histogram":?{
          ????????"field":?"timestamp",
          ????????"calendar_interval":?"1d"
          ??????}
          ????}
          ??}
          }

          返回結(jié)果:

          {
          ??"is_partial"?:?false,
          ??"is_running"?:?false,
          ??"start_time_in_millis"?:?1628663114252,
          ??"expiration_time_in_millis"?:?1629095114252,
          ??"response"?:?{
          ????"took"?:?23,
          ????"timed_out"?:?false,
          ????"_shards"?:?{
          ??????"total"?:?1,
          ??????"successful"?:?1,
          ??????"skipped"?:?0,
          ??????"failed"?:?0
          ????},
          ????"hits"?:?{
          ??????"total"?:?{
          ????????"value"?:?10000,
          ????????"relation"?:?"gte"
          ??????},
          ??????"max_score"?:?null,
          ??????"hits"?:?[?]
          ????},

          為了達(dá)到異步檢索的目的,可以用推薦的測試寫入數(shù)據(jù)的工具:

          https://github.com/oliver006/elasticsearch-test-data

          你是不是也困惑,沒有測試數(shù)據(jù)或者沒有一定數(shù)量的測試數(shù)據(jù)?小工具來了。

          產(chǎn)生100W+數(shù)據(jù),一條指令:

          python?es_test_data.py?--es_url=http://172.21.0.14:19205?--count=1000000

          結(jié)果如下:

          Done?-?total?docs?uploaded:?1000000,?took?71?seconds

          可以結(jié)合自己業(yè)務(wù)場景優(yōu)化一下,python 代碼編寫,很適合封裝成自己的小工具。

          有了數(shù)據(jù),異步檢索直接開搞!

          POST?test_data/_async_search?size=0
          {
          ??"sort":?[
          ????{
          ??????"last_updated":?{
          ????????"order":?"asc"
          ??????}
          ????}
          ??],
          ??"aggs":?{
          ????"sale_date":?{
          ??????"date_histogram":?{
          ????????"field":?"last_updated",
          ????????"calendar_interval":?"1d"
          ??????}
          ????}
          ??}
          }

          返回結(jié)果如下:

          {
          ??"id"?:?"FjUxQURkZFZyUVVlUUNydjVSZXhmWGcedFJCVnRVSVhSdVM0emN2YXZfTU9ZQToyNzE3MTcy",
          ??"is_partial"?:?true,
          ??"is_running"?:?true,
          ??"start_time_in_millis"?:?1628662256012,
          ??"expiration_time_in_millis"?:?1629094256012,
          ??"response"?:?{
          ????"took"?:?1008,
          ????"timed_out"?:?false,
          ????"terminated_early"?:?false,
          ????"num_reduce_phases"?:?0,
          ????"_shards"?:?{
          ??????"total"?:?1,
          ??????"successful"?:?0,
          ??????"skipped"?:?0,
          ??????"failed"?:?0
          ????},
          ????"hits"?:?{
          ??????"total"?:?{
          ????????"value"?:?0,
          ????????"relation"?:?"gte"
          ??????},
          ??????"max_score"?:?null,
          ??????"hits"?:?[?]
          ????}
          ??}
          }

          如果看不到上述結(jié)果,說明數(shù)據(jù)量還不夠大??梢栽賹?dǎo)入一些。

          核心返回參數(shù)解釋一下:

          • id——可用于監(jiān)控其進度、檢索其結(jié)果和/或刪除它的異步搜索的標(biāo)識符。
          • is_partial——當(dāng)查詢不再運行時,指示在所有分片上搜索是失敗還是成功完成。在執(zhí)行查詢時,is_partial 始終設(shè)置為 true。
          • is_running——搜索是否仍在執(zhí)行中或已完成。
          • total——總體而言,將在多少個分片上執(zhí)行搜索。
          • successful——有多少分片已成功完成搜索。

          4.2 查看異步檢索

          GET?/_async_search/FjFoeU8xMHJKUW9pd1dzN1g2Rm9wOGcedFJCVnRVSVhSdVM0emN2YXZfTU9ZQToyNjYyNjk5

          4.3 查看異步檢索狀態(tài)

          GET?/_async_search/status/FjUxQURkZFZyUVVlUUNydjVSZXhmWGcedFJCVnRVSVhSdVM0emN2YXZfTU9ZQToyNzE3MTcy/

          4.4 刪除/中止異步檢索

          DELETE?/_async_search/FjFoeU8xMHJKUW9pd1dzN1g2Rm9wOGcedFJCVnRVSVhSdVM0emN2YXZfTU9ZQToyNjYyNjk5

          5、官方文檔地址

          https://www.elastic.co/guide/en/elasticsearch/reference/current/async-search.html

          6、小結(jié)

          異步搜索認(rèn)證考試環(huán)節(jié),大家了解就可以,能找到官方文檔位置,知道有哪幾個API。

          實戰(zhàn)業(yè)務(wù)環(huán)節(jié)結(jié)合業(yè)務(wù)需求去選型使用即可。但,更傾向于數(shù)據(jù)量極大的業(yè)務(wù)傳統(tǒng)同步請求體驗差的場景。

          你實戰(zhàn)業(yè)務(wù)場景有沒有使用異步檢索?歡迎留言討論。

          推薦

          1、重磅 | 死磕 Elasticsearch 方法論認(rèn)知清單(2021年國慶更新版)
          2、Elasticsearch 7.X 進階實戰(zhàn)私訓(xùn)課(口碑不錯)

          短時間快習(xí)得多干貨!

          已帶領(lǐng)71位球友通過 Elastic 官方認(rèn)證!

          中國僅通過百余人

          比同事搶先一步學(xué)習(xí)進階干貨
          瀏覽 49
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人吧欧美色图 | 亚欧洲精品在线视频 | 欧美成人精品导航 | 亚洲视频在线免费观 | 国产自产视频 |