【ES】--Elasticsearch的Nested類型介紹

目錄

  • 一、問題現象
  • 二、普通數組類型
    • 1、為什么普通數組類型匹配不準?
  • 三、nested類型
  • 四、nested類型查詢操作
    • 1、只根據nested對象內部數組條件查詢
    • 2、只根據nested對象外部條件查詢
    • 3、根據nested對象內部及外部條件查詢
    • 4、向nested對象數組追加新數據
    • 5、刪除nested對象數組某一個對象節點的數據
    • 6、遍歷更新nested對象數組的數據
    • 7、動態修改nested對象數組的數據
    • 8、根據下標修改nested對象數組的數據
    • 9、批量修改nested對象數組的數據

一、問題現象

問題現象:在實際項目中,一些數組存儲的字段,根據匹配條件去查詢經常會查詢到一些“其他不需要”的數據,為什么會出現這種情況?
----這種問題現象,就是ES的Object類型的數據扁平化存儲問題

nested類型是object一種數據類型,對象數組的優先選擇類型。Nested將數組中的每個對象作為單獨的隱藏文檔(hidden separate document)進行索引。nested屬于object類型的一種,是Elasticsearch中用于復雜類型對象數組的索引操作。
nested類型數據是單獨存儲很耗資源,因此默認一個index最多只有50個nested字段。此外,雖然nested是單獨存儲的,但是其字段數也算入index總字段數,默認最多1000個。

二、普通數組類型

普通數組的mapping參數設置

 "word_one": {"properties": {"desc": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"no": {"type": "text","fields": {"keyword": {"type": "keyword","ignore_above": 256}}},"sid": {"type": "long"},"sign": {"type": "boolean"}}}

現在進行搜索sid、desc字段數據。
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
現象結論:word_one是普通數組List,多個must匹配條件會匹配整個List數組數據,而不是每個Bean去匹配。

1、為什么普通數組類型匹配不準?

原因分析:當字段是普通數組類型,其實在ES中,每個對象元素的屬性值被扁平化存儲在了數組中,已丟失了對應關系,因此無法保證搜索的準確。

{"app_id": "42533","word_one": [{"desc": "南京有好高中么","no": "0963","sid": 2002,"sign": false},{"desc": "雨花區面積多大","no": "05380","sid": 2003,"sign": false}]}

被扁平化存儲到ES中,如下所示

 {"app_id"

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

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

相關文章

2025中國淄博化工展|淄博化工技術展|淄博化工裝備展

CTEE2025第九屆中國(淄博)化工技術裝備展覽會 時間:2025年5月16-18日 地點:山東淄博國際會展中心 主辦單位:山東省機械工業科學技術協會 青島藍博國際會展有限公司 眾所周知,山東省是我國化工大省。2023年上半年&am…

Go GMP:并發編程實踐

💝💝💝歡迎蒞臨我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內容和知識,也可以暢所欲言、分享您的想法和見解。 推薦:「stormsha的主頁」…

0053__CancelIO的作用:防止為發送的數據丟失

CancelIO的作用:防止為發送的數據丟失-CSDN博客 cancelIoEx 函數 (ioapiset.h) - Win32 apps | Microsoft Learn

【Java】Logbook優化接口調用日志輸出,優雅!

logbook 簡介 很多人可能沒有接觸過 logbook,但它的確是一個很好用的日志框架。引用官網的介紹 Logbook 是一個可擴展的 Java 庫,可以為不同的客戶端和服務器端技術啟用完整的請求和響應日志記錄。它通過以下方式滿足了特殊需求: 允許 Web 應…

計算機網絡期末復習4(武夷學院版)

第四章 網絡層 1、網際協議IP以及配套協議(書P119) 網際協議(IP):IP協議是網絡層的核心協議,負責數據包的編址和路由。它定義了數據包的格式和處理規則。 配套協議:地址解析協議ARP&#xf…

【工具】VS Code使用global插件實現代碼跳轉

🐚作者簡介:花神廟碼農(專注于Linux、WLAN、TCP/IP、Python等技術方向)🐳博客主頁:花神廟碼農 ,地址:https://blog.csdn.net/qxhgd🌐系列專欄:善假于物&#…

粵港聯動,北斗高質量國際化發展的重要機遇

今年是香港回歸27周年,也是《粵港澳大灣區發展規劃綱要》公布5周年,5年來各項政策、平臺不斷為粵港聯動增添新動能。“十四五”時期的粵港澳大灣區,被國家賦予了更重大的使命,國家“十四五”《規劃綱要》提出,以京津冀…

時序約束(二): input delay約束和output delay約束

一、input delay約束 在千兆以太網數據收發項目中,RGMII的數據輸入方式為DDR,源同步輸入方式,可以用之前提到的分析模型進行約束。 在時序約束原理中我們提到,input delay約束的就是發射沿lunch到數據有效的延時,根據…

Vue 3中 <script setup> 與生命周期鉤子函數的詳細解析

Vue 3中 <script setup> 與生命周期鉤子函數的詳細解析 Vue 3 引入了 <script setup> 語法糖&#xff0c;這是一種簡化和集成組件邏輯的新方式。盡管 <script setup> 簡化了組件的編寫&#xff0c;但仍然可以利用 Vue 提供的生命周期鉤子函數來管理組件的生…

【光伏開發】光伏項目開發流程

光伏項目作為可再生能源領域的重要組成部分&#xff0c;其開發過程涉及多個環節&#xff0c;從項目初期的可行性研究到后期的運營維護&#xff0c;每一步都至關重要。本文將按照項目確認、前期階段、中期階段、后期階段的順序&#xff0c;詳細介紹光伏項目的開發流程。 一、項…

Rust 基礎教程

Rust 編程語言教程 Rust是一門注重安全、并發和性能的系統編程語言。本文將從Rust的基本語法、常用功能到高級特性&#xff0c;詳細介紹Rust的使用方法。 目錄 簡介環境配置基礎語法 變量和常量數據類型函數控制流 所有權和借用 所有權借用 結構體和枚舉 結構體枚舉 模塊和包…

一文搞懂 java 線程池:基礎知識

你好&#xff0c;我是 shengjk1&#xff0c;多年大廠經驗&#xff0c;努力構建 通俗易懂的、好玩的編程語言教程。 歡迎關注&#xff01;你會有如下收益&#xff1a; 了解大廠經驗擁有和大廠相匹配的技術等 希望看什么&#xff0c;評論或者私信告訴我&#xff01; 文章目錄 …

Linux:網絡基礎1

文章目錄 前言1. 協議1.1 為什么要有協議&#xff1f;1.2 什么是協議&#xff1f; 2. 網絡2.1 網絡通信的問題2.2 網絡的解決方案——網絡的層狀結構2.3 網絡和系統的關系2.4 網絡傳輸基本流程2.5 簡單理解IP地址2.6 跨網絡傳輸 總結 前言 在早期的計算機發展中&#xff0c;一開…

【云計算】阿里云、騰訊云、華為云平臺數據庫對比

目錄 一、云數據庫關鍵信息調研對比 二、詳細功能 1、阿里云RDS 2、騰訊云RDS 3、華為云RDS 一、云數據庫關鍵信息調研對比 云平臺支持數據庫部署對比支持功能備注阿里云 Mysql、Postgresql等 特有數據庫&#xff1a;PolarDB&#xff0c;適配mysql 基礎-單節點賬號管…

實現漸變字體的方案

需要注意&#xff0c;這個切圖是把一整塊&#xff0c;都切出來做的。所以需要用span&#xff0c;不能是div 還有描邊的話&#xff0c;scale會有邊距縮放的問題&#xff0c;描邊就用font weight 來實現 style{{ background: "var(--Linear, linear-gradient(96deg, #fff…

【華為戰報】5月、6月HCIP考試戰報!

華為認證&#xff1a;HCIA-HCIP-HCIE 點擊查看&#xff1a; 【華為戰報】4月 HCIP考試戰報&#xff01; 【華為戰報】2月、3月HCIP考試戰報&#xff01; 【華為戰報】11月份HCIP考試戰報&#xff01; 【HCIE喜報】HCIE備考2個月絲滑通關&#xff0c;考試心得分享&#xff…

Python序列化和反序列化

一.序列化和反序列化 在Python中&#xff0c;序列化&#xff08;Serialization&#xff09;和反序列化&#xff08;Deserialization&#xff09;是處理對象數據的過程&#xff0c;主要用于對象的存儲或網絡傳輸。 序列化&#xff08;Serialization&#xff09; 序列化是將Pyth…

7.x86游戲實戰-C++實現跨進程讀寫-跨進程寫內存

免責聲明&#xff1a;內容僅供學習參考&#xff0c;請合法利用知識&#xff0c;禁止進行違法犯罪活動&#xff01; 本次游戲沒法給 內容參考于&#xff1a;微塵網絡安全 上一個內容&#xff1a;6.x86游戲實戰-C實現跨進程讀寫-通過基址讀取人物狀態標志位 上一個內容通過基…

深層神經網絡

深層神經網絡 深層神經網絡 深度神經網絡&#xff08;Deep Neural Networks&#xff0c;DNN&#xff09;可以理解為有很多隱藏層的神經網絡&#xff0c;又被稱為深度前饋網絡&#xff08;DFN&#xff09;&#xff0c;多層感知機&#xff08;Multi-Layer perceptron&#xff0c…

ghost恢復?電腦文件恢復如何操作?電腦數據恢復工具!5款!

在數字化時代&#xff0c;電腦數據的價值日益凸顯。然而&#xff0c;數據丟失、誤刪、系統崩潰等問題時有發生&#xff0c;給個人和企業帶來巨大損失。本文將為您詳細介紹Ghost恢復方法&#xff0c;同時推薦五款高效的電腦數據恢復工具&#xff0c;助您輕松應對數據丟失的困擾。…