探索數據的力量:Elasticsearch中指定鏈表字段的統計查詢記錄

目錄

一、基本的數據結構說明

二、基本的統計記錄

(一)統計當前索引中sellingProducts的所有類型

(二)檢索指定文檔中sellingProducts的數據總量

(三)檢索指定文檔中sellingProducts指定類型的數量統計

(四)統計所有文檔中sellingProducts中所有元素的總數

(五)統計所有文檔中sellingProducts中詳細分類總數統計

三、總結


干貨分享,感謝您的閱讀!

在當今數據驅動的時代,企業和組織面臨著海量數據的挑戰,如何有效地提取和分析這些數據已成為關鍵問題。Elasticsearch作為一種強大的搜索和分析引擎,提供了靈活而高效的數據檢索能力,能夠幫助我們快速獲取所需信息。本篇文章將深入探討在Elasticsearch中對sellingProducts字段的統計操作。

通過具體的案例和查詢示例,我們將展示如何從sell_product_order索引中提取出關鍵信息,包括產品類型的統計、產品數量的計算以及更復雜的聚合查詢。無論是想要了解產品銷售狀況的市場分析師,還是希望提升數據處理能力的開發者,本文都將為你提供實用的參考和技術支持。

在接下來的部分中,我們將逐步介紹基本的數據結構、關鍵的統計操作以及相應的Elasticsearch查詢語法,幫助讀者掌握在實際應用中如何進行數據統計和分析。通過這次學習,我們希望讀者能夠更加熟悉Elasticsearch的使用,并在實際工作中充分利用這一強大的工具,挖掘出數據背后的價值。

一、基本的數據結構說明

對應ES索引:sell_product_order

針對假設ES文檔的基本結構內容如下:

   {"id": "2024041801000115936701","sellingProducts": ["FUND_20150718000230030000000000002549","STOCK_656","STOCK_4055","STOCK_1720","FUND_20180920000230030000000000015303"]}

我們針對里面的sellingProducts字段進行一些基本的統計操作,本次記錄一下相關的基本操作。

二、基本的統計記錄

(一)統計當前索引中sellingProducts的所有類型

sell_product_order 索引中檢索數據,然后根據 sellingProducts 字段中的內容,聚合出售產品的類型信息,并返回前 10 個最頻繁出現的產品類型。

GET /sell_product_order/_search
{"size": 0,"aggs": {"types": {"terms": {"script": {"source": """HashSet types = new HashSet();for (item in doc['sellingProducts']) {int delimiterIndex = item.indexOf('_');if (delimiterIndex > -1) {types.add(item.substring(0, delimiterIndex));}}return types;""","lang": "painless"},"size": 10 }}}
}

(二)檢索指定文檔中sellingProducts的數據總量

從索引為 sell_product_order 中檢索數據,并返回指定 _id 的文檔,并在結果中包含一個名為 sellingProducts_count 的腳本字段,用于計算每個文檔中 sellingProducts 字段的大小。

GET /sell_product_order/_search
{"query": {"terms": {"_id": ["2024041801000115936701"  ]}},"script_fields": {"sellingProducts_count": {"script": {"lang": "painless","source": "doc['sellingProducts'].size()" }}}
}

(三)檢索指定文檔中sellingProducts指定類型的數量統計

sell_product_order 索引中檢索具有指定 _id 的文檔,并在結果中返回兩個計算字段,分別是 fund_countstock_count,它們分別表示文檔中以 'FUND_''STOCK_' 開頭的元素的數量。

GET /sell_product_order/_search
{"query": {"terms": {"_id": ["2024041801000115936701"]}},"script_fields": {"fund_count": {"script": {"lang": "painless","source": "int fundCount = 0; for (String item : doc['sellingProducts']) { if (item.startsWith('FUND_')) { fundCount++; } } return fundCount;"}},"stock_count": {"script": {"lang": "painless","source": "int stockCount = 0; for (String item : doc['sellingProducts']) { if (item.startsWith('STOCK_')) { stockCount++; } } return stockCount;"}}}
}

(四)統計所有文檔中sellingProducts中所有元素的總數

sell_product_order 索引中檢索所有文檔,并計算 sellingProducts 字段中所有元素的總數,將結果作為 total_sellingProducts_items 的值返回。

GET /sell_product_order/_search
{"size": 0,  "aggs": {"total_sellingProducts_items": {"sum": {"script": {"source": "doc['sellingProducts'].size()","lang": "painless"}}}}
}

(五)統計所有文檔中sellingProducts中詳細分類總數統計

計算 sellingProducts 字段中以 FUND_ 開頭和以 STOCK_ 開頭的元素數量,將結果以 fund_countstock_count 的形式返回。

GET /sell_product_order/_search
{"size": 0,"aggs": {"totals": {"scripted_metric": {"init_script": "state.fund_count = 0; state.stock_count = 0;","map_script": """if (doc.containsKey('sellingProducts')) {for (def item : doc['sellingProducts']) {if (item.startsWith('FUND_')) {state.fund_count++;} if (item.startsWith('STOCK_')) {state.stock_count++;}}}""","combine_script": "return state","reduce_script": """def total_fund_count = 0;def total_stock_count = 0;for (state in states) {total_fund_count += state.fund_count;total_stock_count += state.stock_count;}return ['fund_count': total_fund_count, 'stock_count': total_stock_count];
"""}}}
}

三、總結

在本文中,我們探討了如何在Elasticsearch中對sell_product_order索引中的sellingProducts字段進行基本的統計操作。通過具體的查詢示例,我們展示了多種數據檢索和聚合的技巧,幫助我們從海量數據中提取出有價值的信息。

首先,我們介紹了數據結構的基本概念,明確了如何定位目標字段。隨后,我們演示了幾種不同的統計方法,包括計算產品類型的出現頻率、檢索指定文檔中產品數量、以及對產品類型進行細分統計。這些操作不僅為數據分析提供了基礎支持,也為業務決策提供了有力的數據依據。

通過這些示例,讀者可以看到Elasticsearch的強大靈活性,以及它在處理復雜數據查詢時的高效性。這些技巧不僅適用于特定的業務場景,也為進一步的深入分析和數據挖掘奠定了基礎。

在未來的應用中,我們鼓勵讀者繼續探索Elasticsearch的更多功能,如更高級的聚合分析和數據可視化工具,以全面提升數據處理能力和決策支持效果。通過不斷實踐和學習,大家將能更好地掌握這一工具,從而在日益復雜的數據環境中游刃有余。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/909415.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/909415.shtml
英文地址,請注明出處:http://en.pswp.cn/news/909415.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

細節致勝:如何重塑反向海淘用戶體驗

在反向海淘的激烈競爭中,客戶體驗已成為決定勝負的關鍵。一次流暢的購物旅程、一個貼心的服務細節,都可能讓海外消費者成為品牌的忠實傳播者。易境通代購商城系統正是以極致體驗為核心,通過精細化服務管理,助力企業贏得用戶口碑與…

Docker 分階段構建

Docker 分階段構建 Docker 分階段構建(Multi-stage Build)是一種高效的鏡像構建技術,允許在一個 Dockerfile 中使用多個構建階段,每個階段可以使用不同的基礎鏡像,最終只保留需要的文件,從而顯著減小鏡像體…

人工智能學習23-BP-圖像編碼

人工智能學習概述—快手視頻 人工智能學習23-BP-圖像編碼—快手視頻

k8s的開篇學習和安裝

k8s的開篇學習 學習網站 參考資料 1。 K8S能干什么 [概述 | Kubernetes](https://kubernetes.io/zh-cn/docs/concepts/overview/#why-you-need-kubernetes-and-what-can-it-do)需要開代理 2。docker資料 https://docs.docker.com/get-started/3.prometheus資料 https://promet…

CS144 lab0: warmup

Lab 0: networking warmup 1. 環境 依賴配置 sudo apt update && sudo apt install git cmake gdb build-essential clang \clang-tidy clang-format gcc-doc pkg-config glibc-doc tcpdump tsharkg13配置 ppa中科大源 # deb https://ppa.launchpadcontent.net/ubu…

StarRocks

StarRocks 是一個高性能的 分布式 MPP(Massively Parallel Processing)數據庫,主要用于 實時數據分析(Real-Time Analytics),是新一代的 OLAP 數據庫,對標 ClickHouse、Apache Doris 等。 ?? 一、StarRocks 是什么? StarRocks 是一個面向實時分析場景、支持高并發、高…

8088單板機8259中斷的軟件觸發測試

1.工作原理 8086和8088的中斷設計的是很巧妙的,比如給8259的IR1配置了一個中斷,中斷號為21H,那么當真個引腳出現高電平的時候,就會觸發相應上的中斷響應。但,這不是唯一能夠觸發21H中斷的方法,還可以通過軟…

TC3xx中PFLASH緩存對XCP標定常量的影響

1、TC3xx中PFLASH緩存(Cache)對XCP標定的影響 XCP的映射用到TC3XX的Overlay功能需要使用一段Pflash內存。 Pflash數據有兩個段區。分別為0x80000000和0xA0000000為起始地址的PFLASH段。 如上,兩段數據的區別是一個段8有CACHE緩存,…

代碼審計服務:如何解決誤報與漏報難題,保障軟件安全?

代碼審計服務在保障軟件質量、安全合規等方面扮演著關鍵角色,特別是在數字化浪潮席卷而來的今天,其重要性日益顯著。它能揭露代碼中的不足,進而為軟件開發提供有力的效率和安全性保障。 誤報與漏報難題 常規的代碼審查工具,其錯…

web方向第一次考核內容

一.考核內容 Web組大一下考核之HTML、CSS 1.為什么要清除浮動(4),清除浮動的方法有哪些?(6)(至少兩種) 2.怎么實現左邊左邊寬度固定右邊寬度自適應的布局?(10) 3.講講flex:1;(10) 4.怎么實現移動端適配不同…

HarmonyOS 5 Cordova有哪些熱門插件?

以下是 HarmonyOS 5 環境下 Cordova 的熱門插件及核心代碼實現(綜合實際開發場景高頻使用): 一、核心工具類插件 1. ?高性能圖片壓縮插件? ?功能?:直接調用鴻蒙 ImageSource API 實現硬件級加速壓縮 ?代碼實現?&#xff…

Cesium圓錐漸變色實現:融合頂點著色器、Canvas動態貼圖與靜態紋理的多方案整合

在Cesium中渲染圓錐體時,無論采用頂點著色器、Canvas動態貼圖還是靜態圖片貼圖,其漸變色均需滿足以下條件: 圓形結構:漸變范圍限定在圓錐底面的圓形區域內。徑向擴散:顏色從圓心向外逐步變化(如紅→黃→藍…

周末復習1

質量管理包括質量規劃,質量保證,質量控制。質量管理體系要定期執行內部審核和管理評審。二者都屬于質量保證過程。 實施質量保證的方法很多,過程分析屬于實施質量保證的常用方法。 采購管理過程包括編制采購計劃,實施采購,控制采購和結束采購…

英飛凌亮相SEMICON China 2025:以SiC、GaN技術引領低碳化與數字化未來

在剛剛落幕的SEMICON China 2025上,全球半導體行業再度匯聚上海,共同探討產業未來。本屆展會以“跨界全球?心芯相聯”為主題,覆蓋芯片設計、制造、封測、設備及材料等全產業鏈,充分展現了半導體技術的最新突破與創新趨勢。 作為…

工業路由器賦能倉庫消防預警,智慧消防物聯網解決方案

在現代物流與倉儲行業蓬勃發展的當下,倉庫的規模與存儲密度不斷攀升,消防預警的重要性愈發凸顯。傳統消防系統在應對復雜倉庫環境時,預警滯后、設備聯動不暢、數據管理困難等弊端逐漸暴露。為了有效解決這些問題,工業路由器作為物…

【開發常用命令】:服務器與本地之間的數據傳輸

服務器與本地之間的數據傳輸 本地給服務器上傳數據 scp /path/to/local_file usernameremotehost:/path/to/remote_directory例如 scp test.txt root192.168.1.xxx:/test # test.txt 需要上傳到服務器的文件,如果非當前路徑,使用文件的相對路徑或絕對…

springboot + nacos + k8s 優雅停機

1 概念 優雅停機是什么?網上說的優雅下線、無損下線,都是一個意思。 優雅停機,通常是指在設備、系統或應用程序中止運作前,先執行一定的流程或動作,以確保數據的安全、預防錯誤并保證系統的整體穩定。 一般來說&…

Python 標準庫之 math 模塊

1. 前言 math 模塊中包含了各種浮點運算函數,包括: 函數功能floor向下取整ceil向上取整pow指數運算fabs絕對值sqrt開平方modf拆分小數和整數fsum計算列表中所有元素的累加和copysign復制符號pi圓周率e自然對數 2. math.floor(n) 函數 math.floor(n) 的…

6.14星期六休息一天

Hey guys, Today’s Saturday, and I didn’t have to go to work, so I let myself sleep in a bit — didn’t get up until 8 a.m. My cousin invited me over to his place. He lives in a nearby city, about 80 kilometers away. But honestly, after a long week, I …

event.target 詳解:理解事件目標對象

event.target 詳解&#xff1a;理解事件目標對象 在 JavaScript 事件處理中&#xff0c;event.target 是一個關鍵屬性&#xff0c;它表示最初觸發事件的 DOM 元素。下面我將通過一個可視化示例詳細解釋其工作原理和使用場景。 <!DOCTYPE html> <html lang"zh-C…