国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Elasticsearch 優(yōu)化查詢中獲取字段內(nèi)容的方式,性能提升5倍!

這篇具有很好參考價(jià)值的文章主要介紹了Elasticsearch 優(yōu)化查詢中獲取字段內(nèi)容的方式,性能提升5倍!。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1、背景

集群配置為:8 個(gè) node 節(jié)點(diǎn),16 核 32G,索引 4 分片 1 副本。應(yīng)用程序的查詢邏輯是按經(jīng)緯度排序后找前 200 條文檔。

  • 1、應(yīng)用對(duì)查詢要求比較高,search 沒(méi)有慢查詢的狀態(tài)。

es source取字段越多,elasticsearch,php,大數(shù)據(jù),搜索引擎,全文檢索
  • 2、集群壓測(cè)性能不能上去,cpu 使用未打滿,查詢的 qps 上不去,且有隊(duì)列堆積。

es source取字段越多,elasticsearch,php,大數(shù)據(jù),搜索引擎,全文檢索es source取字段越多,elasticsearch,php,大數(shù)據(jù),搜索引擎,全文檢索es source取字段越多,elasticsearch,php,大數(shù)據(jù),搜索引擎,全文檢索

2、優(yōu)化方法

通過(guò)云廠商內(nèi)核組的同學(xué)抓取火焰圖發(fā)現(xiàn),主要消耗在 fetch phrase 階段。

es source取字段越多,elasticsearch,php,大數(shù)據(jù),搜索引擎,全文檢索

ES 默認(rèn)從_source 取,每次查詢都會(huì)讀取一行數(shù)據(jù),并需要做解壓,如果對(duì)查詢耗時(shí)要求比較高,應(yīng)當(dāng)在查詢時(shí)關(guān)閉 store fields ,查詢語(yǔ)句 指定“stored_fields”: [“none”], 砍掉元數(shù)據(jù)字段,同時(shí)用 “docvalue_fields”: [“video_fact_id”], 指定只拉取需要的字段,降低序列化跟網(wǎng)絡(luò)傳輸開(kāi)銷。約能提升40% 性能。

推薦DSL如下:

GET /your_index/_search


{


  "query": {


    "match_all": {} // 或者是其他符合你需求的查詢


  },


  "stored_fields": ["none"], // 不獲取任何存儲(chǔ)的字段


  "docvalue_fields": ["field1", "field2"] // 只獲取需要的doc value字段


}

3、優(yōu)化后效率

3.1 查詢耗時(shí)有進(jìn)一步的提升

es source取字段越多,elasticsearch,php,大數(shù)據(jù),搜索引擎,全文檢索

3.2 壓測(cè)時(shí)cpu使用率和qps也有了明顯的上升

es source取字段越多,elasticsearch,php,大數(shù)據(jù),搜索引擎,全文檢索es source取字段越多,elasticsearch,php,大數(shù)據(jù),搜索引擎,全文檢索

壓測(cè)最終的指標(biāo):優(yōu)化前1800qps,優(yōu)化后9200qps。

4、優(yōu)化根因分析

在優(yōu)化前,由于Elasticsearch默認(rèn)從_source字段讀取數(shù)據(jù),這導(dǎo)致每次查詢都需要讀取整行數(shù)據(jù)并進(jìn)行解壓。這個(gè)過(guò)程不僅耗費(fèi)CPU資源,還會(huì)增加響應(yīng)時(shí)間,特別是當(dāng)文檔內(nèi)容龐大時(shí)。

解壓操作是CPU密集型的,而在高負(fù)載情況下,這可能成為系統(tǒng)瓶頸,從而限制了查詢性能和吞吐量。

優(yōu)化后,通過(guò)指定“stored_fields": ["none"],我們有效地排除了_source字段的讀取和解壓過(guò)程,這顯著減少了每個(gè)查詢的CPU負(fù)載。

而使用“docvalue_fields”指定從列存中獲取字段內(nèi)容,沒(méi)有壓縮的轉(zhuǎn)換,進(jìn)一步減少了數(shù)據(jù)處理的開(kāi)銷。這種方法不僅降低了CPU的使用率,同時(shí)只提取必要的字段也減少了了網(wǎng)絡(luò)傳輸?shù)呢?fù)擔(dān)。

最終,通過(guò)這些優(yōu)化措施,查詢的QPS(每秒查詢數(shù))得到了顯著提升,從1800qps提高到9200qps,這在高性能應(yīng)用場(chǎng)景中是一個(gè)巨大的飛躍。

更高的QPS意味著系統(tǒng)能夠更快地處理更多的查詢請(qǐng)求,提高了整體的吞吐量和性能。

5、小結(jié)

總結(jié)來(lái)說(shuō),通過(guò)精細(xì)地調(diào)整查詢策略和減少不必要的數(shù)據(jù)處理,我們可以顯著提升Elasticsearch的性能,這在處理大規(guī)模數(shù)據(jù)和高并發(fā)查詢的環(huán)境下尤為重要。

6、官方文檔

https://www.elastic.co/guide/en/elasticsearch/reference/8.4/search-fields.html#disable-stored-fields

https://www.elastic.co/guide/en/elasticsearch/reference/8.4/search-fields.html#docvalue-fields

5、作者介紹

金多安,Elastic 認(rèn)證專家,Elastic資深運(yùn)維工程師,死磕Elasticsearch知識(shí)星球嘉賓,星球Top活躍技術(shù)專家,搜索客社區(qū)日?qǐng)?bào)責(zé)任編輯

推薦閱讀

  1. 全網(wǎng)首發(fā)!從 0 到 1 Elasticsearch 8.X 通關(guān)視頻

  2. 重磅 | 死磕 Elasticsearch 8.X 方法論認(rèn)知清單

  3. 如何系統(tǒng)的學(xué)習(xí) Elasticsearch ?

  4. 2023,做點(diǎn)事

es source取字段越多,elasticsearch,php,大數(shù)據(jù),搜索引擎,全文檢索

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

和全球?近2000+?Elastic 愛(ài)好者一起精進(jìn)!

es source取字段越多,elasticsearch,php,大數(shù)據(jù),搜索引擎,全文檢索

比同事?lián)屜纫徊綄W(xué)習(xí)進(jìn)階干貨!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-766771.html

到了這里,關(guān)于Elasticsearch 優(yōu)化查詢中獲取字段內(nèi)容的方式,性能提升5倍!的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • es查詢響應(yīng)結(jié)果中獲取某些字段的值

    es查詢響應(yīng)結(jié)果中獲取某些字段的值

    ????????有時(shí)候使用es查詢出的結(jié)果包含多個(gè)字段,如果數(shù)據(jù)中僅僅包含幾個(gè)字段時(shí),我們是很容易挑出自己需要的字段值,但是如果數(shù)據(jù)中包含幾十或者幾百甚至更多時(shí),尤其是數(shù)據(jù)中嵌套好多層時(shí),不容易直接挑取出需要的值,這時(shí)候可以借助程序直接查找出來(lái)?;蛘?/p>

    2024年02月12日
    瀏覽(27)
  • Python連接Elasticsearch查詢索引字段命中數(shù)詳解

    Python連接Elasticsearch查詢索引字段命中數(shù)詳解

    ?? 個(gè)人網(wǎng)站:ipengtao.com Elasticsearch是一款強(qiáng)大的搜索和分析引擎,通過(guò)其RESTful API,可以方便地與其交互。本篇文章將深入探討如何使用Python連接Elasticsearch,并通過(guò)查詢索引某個(gè)字段的命中數(shù)來(lái)實(shí)現(xiàn)數(shù)據(jù)統(tǒng)計(jì)的目的。將介紹基礎(chǔ)的Elasticsearch查詢、高級(jí)的聚合查詢以及一些常

    2024年02月04日
    瀏覽(99)
  • trino關(guān)于查詢elasticSearch中時(shí)間字段的問(wèn)題

    trino關(guān)于查詢elasticSearch中時(shí)間字段的問(wèn)題

    查看官方文檔:Elasticsearch connector — Trino 395 Documentation? 這段話的意思就是,elasticSearch支持很多時(shí)間類型的格式化方式,但是trino中es連接器只支持默認(rèn)的date類型,就是不能加時(shí)間格式化 創(chuàng)建 yc_test_data 索引,索引中包含兩個(gè)屬性create_time 和?name PUT? ?http://10.226.21.38:9200/yc

    2024年02月16日
    瀏覽(20)
  • Elasticsearch實(shí)現(xiàn)對(duì)同一字段既能精準(zhǔn)查詢也能模糊查詢

    Elasticsearch實(shí)現(xiàn)對(duì)同一字段既能精準(zhǔn)查詢也能模糊查詢

    ?使用@MultiField注解給字段取別名并設(shè)置為keyword類型 dao層如下 實(shí)體類如下 模糊查詢測(cè)試如下: 可以看到模糊查詢content中一共有3條數(shù)據(jù)有我這個(gè)分詞 ?精準(zhǔn)查詢?nèi)缦拢??可以看到精準(zhǔn)查詢就只有一條結(jié)果,符合精準(zhǔn)查詢。 注意:該方法需要版本支持,具體版本未知,但是在

    2024年02月02日
    瀏覽(19)
  • Elasticsearch:ES|QL 查詢中的元數(shù)據(jù)字段及多值字段

    Elasticsearch:ES|QL 查詢中的元數(shù)據(jù)字段及多值字段

    在今天的文章里,我來(lái)介紹一下 ES|QL 里的元數(shù)據(jù)字段以及多值字段。我們可以利用這些元數(shù)據(jù)字段以及多值字段來(lái)針對(duì)我們的查詢進(jìn)行定制。這里例子的數(shù)據(jù)集,請(qǐng)參考文章 “Elasticsearch:ES|QL 快速入門”。 ES|QL 可以訪問(wèn)元數(shù)據(jù)字段。 目前支持的有: _index :文檔所屬的索引

    2024年02月04日
    瀏覽(16)
  • es使用和常用查詢(包含多字段聚合查詢,實(shí)體類方式保存es)

    1.導(dǎo)入es相關(guān)jar包 2.增加es配置 3.讀取es相關(guān)配置? ?4.創(chuàng)建es實(shí)體類,與es mapping設(shè)計(jì)一致 ?5.創(chuàng)建es結(jié)構(gòu) ?6.創(chuàng)建類繼承 ElasticsearchRepository 實(shí)現(xiàn)通過(guò)api保存實(shí)體類ESData到es ?7.保存實(shí)體類ESData到es ?8.es查詢 多字段匹配查詢,分組查詢,分組后聚合

    2024年02月03日
    瀏覽(18)
  • Elasticsearch es查詢結(jié)果只返回指定篩選字段_source

    參考:https://www.exception.site/elasticsearch/elasticsearch-query-custom-columns *** 只返回title、channel結(jié)果;下列兩種語(yǔ)法方式都可以

    2024年02月11日
    瀏覽(24)
  • 【Elasticsearch】ES精確查詢和范圍查詢,ES時(shí)間字段排序?qū)嵗珽S倒排索引介紹

    【Elasticsearch】ES精確查詢和范圍查詢,ES時(shí)間字段排序?qū)嵗珽S倒排索引介紹

    termQuery matchQuery 模糊查詢 multiMatchQuery 多個(gè)字段模糊查詢 如果時(shí)間字段寫入時(shí)用的類型是Text,可以用“時(shí)間字段.keyword”來(lái)處理 #查詢前傳入分頁(yè)參數(shù) #分頁(yè)后拿到總記錄數(shù) 把文檔D對(duì)應(yīng)到的映射轉(zhuǎn)換為到文檔ID的映射,每個(gè)都對(duì)應(yīng)著一系列的文檔,這些文

    2024年02月15日
    瀏覽(126)
  • Mybatis Plus之DQL(條件查詢方式、查詢投影、查詢條件設(shè)定、字段映射與表名映射)

    Mybatis Plus之DQL(條件查詢方式、查詢投影、查詢條件設(shè)定、字段映射與表名映射)

    增刪改查四個(gè)操作中,查詢是非常重要的也是非常復(fù)雜的操作,這塊需要我們重點(diǎn)學(xué)習(xí)下,這節(jié)我們主要學(xué)習(xí)的內(nèi)容有: 條件查詢方式 查詢投影 查詢條件設(shè)定 字段映射與表名映射 1.1 條件查詢的類 MyBatisPlus將書寫復(fù)雜的SQL查詢條件進(jìn)行了封裝,使用編程的形式完成查詢條件的

    2024年02月05日
    瀏覽(23)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包