Elasticsearch的Java客戶端庫QueryBuilders查詢方法大全

matchAllQuery

使用方法:創建一個查詢,匹配所有文檔。
示例:QueryBuilders.matchAllQuery()
注意事項:這種查詢不加任何條件,會返回索引中的所有文檔,可能會影響性能,特別是文檔數量很多時。

matchQuery

使用方法:對指定字段執行全文搜索查詢。
示例:QueryBuilders.matchQuery(“fieldName”, “text to search”)
注意事項:默認會對文本進行分詞處理,然后進行搜索。

multiMatchQuery

使用方法:允許你在多個字段上執行匹配查詢。
示例:QueryBuilders.multiMatchQuery(“text tosearch”, “fieldName1”, “fieldName2”)
注意事項:適用于需要在不同字段上搜索相同文本的情況。

termQuery

使用方法:對指定字段執行精確匹配查詢。
示例:QueryBuilders.termQuery(“fieldName”, “value”)
注意事項:不會對字段值進行分詞。

termsQuery

使用方法:允許指定多個精確值進行匹配查詢。
示例:QueryBuilders.termsQuery(“fieldName”,“value1”, “value2”)
注意事項:不會對字段值進行分詞,適用于字段值完全匹配其中一個查詢值的情況。

rangeQuery

使用方法:對指定字段執行范圍查詢。
示例:QueryBuilders.rangeQuery(“fieldName”).from(“startValue”).to(“endValue”)
注意事項:可以設置范圍的起始和結束值,適用于數值、日期等類型的字段。

wildcardQuery

使用方法:執行通配符查詢,支持*(任意字符序列)和?(單個字符)。
示例:QueryBuilders.wildcardQuery(“fieldName”, “text*”)
注意事項:可能會影響性能,尤其是通配符在前面時。

fuzzyQuery

使用方法:對指定字段執行模糊查詢。
示例:QueryBuilders.fuzzyQuery(“fieldName”, “text”)
注意事項:基于Levenshtein編輯距離進行匹配,可以設置模糊程度。

boolQuery

使用方法:組合多個查詢條件,支持must(必須匹配)、should(至少匹配一個)、must_not(不能匹配)和filter(過濾)。
示例:QueryBuilders.boolQuery().must(QueryBuilders.termQuery(“fieldName”,“value”))
注意事項:是構建復雜查詢邏輯的基礎,性能比filter更優。

nestedQuery

使用方法:查詢嵌套對象。
示例:QueryBuilders.nestedQuery(“path”,QueryBuilders.termQuery(“path.fieldName”, “value”), ScoreMode.Avg)
注意事項:path是嵌套對象的路徑,必須使用nested類型定義嵌套對象字段。

NestedQueryBuilder nestedQuery = QueryBuilders.nestedQuery("nested_field", 
QueryBuilders.matchQuery("nested_field.property", "value"), ScoreMode.None);

prefixQuery

使用方法:搜索具有指定前綴的文檔。
示例:QueryBuilders.prefixQuery(“fieldName”, “prefix”)
注意事項:對性能影響較大,特別是前綴較短時。

regexpQuery

使用方法:使用正則表達式進行查詢。
示例:QueryBuilders.regexpQuery(“fieldName”, “regexp”)
注意事項:復雜的正則表達式可能會嚴重影響性能。

disMaxQuery

使用方法:對子查詢的結果做并集,但只用得分最高的那個子查詢的得分作為最終得分。
示例:QueryBuilders.disMaxQuery().add(QueryBuilders.termQuery(“fieldName”,
“value1”)).add(QueryBuilders.termQuery(“fieldName”, “value2”))
注意事項:用于處理多個字段上的查詢并想要每個字段上的查詢獨立計分。

matchPhraseQuery

使用方法:搜索與指定短語匹配的文檔,考慮短語的完整性和順序。
示例:QueryBuilders.matchPhraseQuery(“fieldName”, “phrase”)
注意事項:對于精確的短語搜索非常有用。

matchPhrasePrefixQuery

使用方法:類似于matchPhraseQuery,但是對最后一個詞允許前綴匹配。
示例:QueryBuilders.matchPhrasePrefixQuery(“fieldName”, “phrase prefix”)
注意事項:適用于自動補全或容錯的場景。

geoDistanceQuery

使用方法:根據地理位置和指定距離搜索文檔。
示例:QueryBuilders.geoDistanceQuery(“location”).point(lat,
lon).distance(“12km”) 注意事項:確保字段正確映射為地理位置類型。

geoBoundingBoxQuery

使用方法:在指定的地理坐標范圍內搜索文檔。
示例:QueryBuilders.geoBoundingBoxQuery(“location”).setCorners(northLat,
westLon, southLat, eastLon)
注意事項:用于地理位置范圍搜索。

geoPolygonQuery

使用方法:在指定的多邊形內搜索文檔。 示例:QueryBuilders.geoPolygonQuery(“location”,
Arrays.asList(new GeoPoint(lat1, lon1), new GeoPoint(lat2, lon2),
…))
注意事項:性能可能會隨多邊形頂點的增加而降低。

existsQuery

使用方法:搜索指定字段有值的文檔(不為null或不存在)。
示例:QueryBuilders.existsQuery(“fieldName”)
注意事項:用于找出指定字段有值的文檔。

idsQuery

使用方法:根據文檔ID搜索文檔。
示例:QueryBuilders.idsQuery().addIds(“1”, “2”, “3”)
注意事項:直接通過ID快速檢索文檔。

queryStringQuery

使用方法:允許用戶使用查詢語句字符串(支持Lucene查詢語法)進行復雜查詢。
示例:QueryBuilders.queryStringQuery(“+java -python”)
注意事項:非常靈活,但需要用戶了解查詢語法。不當的查詢語句可能會影響性能或結果準確性。

simpleQueryStringQuery

使用方法:提供一個更簡單、更寬松的查詢字符串語法和解析。
示例:QueryBuilders.simpleQueryStringQuery(“java python”)
注意事項:比queryStringQuery更安全,避免復雜語法導致的錯誤,但功能也相對受限。

boostingQuery

使用方法:組合兩個查詢,提升第一個查詢的結果,降低第二個查詢的結果。
示例:QueryBuilders.boostingQuery(QueryBuilders.termQuery(“field”,
“value1”), QueryBuilders.termQuery(“field”, “value2”)).negativeBoost(0.2f)
注意事項:用于突出重要結果,同時保留其他相關結果。

constantScoreQuery

使用方法:對過濾查詢的結果賦予一個常數分數。
示例:QueryBuilders.constantScoreQuery(QueryBuilders.termQuery(“field”, “value”)).boost(2.0f)
注意事項:適用于只關心匹配與否,不關心匹配程度(得分)的場景。

functionScoreQuery

使用方法:允許修改查詢得分,通過一系列函數來調整。
示例:QueryBuilders.functionScoreQuery(QueryBuilders.matchQuery(“field”,
“value”), ScoreFunctionBuilders.weightFactorFunction(2))
注意事項:提供了極高的靈活性,可以根據文檔的屬性計算得分。

scriptQuery

使用方法:使用腳本來指定文檔是否匹配。
示例:QueryBuilders.scriptQuery(new Script(“doc[‘field’].value > 5”))
注意事項:靈活但復雜,性能可能受腳本執行效率影響。

geoShapeQuery

使用方法:基于地理形狀進行查詢。
示例:QueryBuilders.geoShapeQuery(“locationField”,
ShapeBuilders.newEnvelope(new Coordinate(-30, 50), new Coordinate(30, -50)))
注意事項:需要地理形狀字段正確映射,用于復雜的地理空間查詢。

wildcardQuery

使用方法:允許使用通配符進行模糊匹配。
示例:QueryBuilders.wildcardQuery(“field”, “text*”)
注意事項:可能影響性能,特別是以通配符開始的模式。

regexpQuery

使用方法:基于正則表達式進行查詢。
示例:QueryBuilders.regexpQuery(“fieldName”, “regexp”)
注意事項:功能強大但可能影響性能,使用時需要謹慎。

termsLookupQuery

使用方法:使用另一個文檔的值作為本次查詢的條件。
示例:QueryBuilders.termsLookupQuery(“fieldName”, new TermsLookup(“index”, “id”, “path”))
注意事項:允許動態從其他文檔中獲取查詢條件,增加查詢靈活性。

termQuery

使用方法:查找字段中完全匹配指定值的文檔。
示例:QueryBuilders.termQuery(“fieldName”, value);
注意事項:適用于不需要分詞的字段,如枚舉、狀態碼等。

fuzzyQuery

使用方法:基于Levenshtein距離進行模糊匹配,找到與指定值相似的文檔。
示例:QueryBuilders.fuzzyQuery(“fieldName”, “text”)
注意事項:可以調整最大編輯距離參數,但過大的距離可能會降低查詢性能。

prefixQuery

使用方法:查找字段值具有指定前綴的文檔。
示例:QueryBuilders.prefixQuery(“fieldName”,“prefix”)
注意事項:對于大型數據集,前綴過短可能會影響查詢性能。

wildcardQuery

使用方法:使用通配符進行查詢,*表示任意字符序列,?表示任意單個字符。
示例:QueryBuilders.wildcardQuery("fieldName", "*pattern?")
注意事項:與prefixQuery類似,可能影響性能,謹慎使用特別是在模式的開頭使用*?

idsQuery

使用方法:根據文檔ID查找文檔。
示例:QueryBuilders.idsQuery().addIds(“1”, “2”, “3”)
注意事項:快速直接通過ID檢索文檔,但對于大規模的ID查詢,性能可能受影響。

rangeQuery

使用方法:在指定字段上執行范圍查詢,找出字段值落在指定區間內的文檔。
示例:QueryBuilders.rangeQuery(“fieldName”).from(start).to(end)
注意事項:支持字符串、數字及日期類型,對于日期類型需要確保字段格式正確。

matchQuery

使用方法:在全文字段上執行全文檢索。
示例:QueryBuilders.matchQuery(“fieldName”, “text to search”)
注意事項:默認對查詢文本進行分詞,然后搜索分詞結果。

matchPhraseQuery

使用方法:查找與指定短語匹配的文檔,考慮詞條順序。
示例:QueryBuilders.matchPhraseQuery(“fieldName”, “phrase to match”)
注意事項:適用于需要精確匹配短語的場景,對于短語中的每個詞條,位置必須嚴格匹配。

matchPhrasePrefixQuery

使用方法:短語前綴查詢,與matchPhraseQuery相似,但是對最后一個詞允許前綴匹配。
示例:QueryBuilders.matchPhrasePrefixQuery(“fieldName”, “phrase prefix”)
注意事項:適用于自動補全場景,但對于長文本或高頻詞可能影響性能。

scriptQuery

使用方法:使用腳本條件進行查詢。
示例:QueryBuilders.scriptQuery(new Script(“doc[‘field’].value > 5”))
注意事項:靈活但需要注意腳本性能和安全問題,不當的腳本可能導致性能下降或安全風險。

geoDistanceQuery

使用方法:查找位于某個地理位置指定距離內的文檔。
示例:QueryBuilders.geoDistanceQuery(“location”).point(lat, lon).distance(“200km”)
注意事項:確保使用的字段是geo-point類型。這種查詢適合于地理位置搜索場景。

geoBoundingBoxQuery

使用方法:查找位于指定地理矩形框內的文檔。
示例:QueryBuilders.geoBoundingBoxQuery(“location”).setCorners(topLeft, bottomRight)
注意事項:同樣需要字段是geo-point類型。這種查詢適用于用戶指定一個地理區域范圍進行搜索。

geoPolygonQuery(已棄用)

使用方法:查找位于指定多邊形內的文檔。 示例:QueryBuilders.geoPolygonQuery(“location”,
points)
注意事項:由于性能原因,這個查詢在較新版本的Elasticsearch中已被棄用。建議使用geo-shape查詢代替。

existsQuery

使用方法:查找指定字段有值的文檔。
示例:QueryBuilders.existsQuery(“fieldName”)
注意事項:這個查詢用于找出指定字段非空的文檔。非常適用于過濾出某個字段一定存在的文檔。

idsQuery

使用方法:根據文檔ID查找文檔。
示例:QueryBuilders.idsQuery().addIds(“1”, “2”, “3”)
注意事項:這是一種非常直接的查詢方式,通過指定文檔ID來快速檢索文檔。

wrapperQuery

使用方法:使用JSON字符串表示的原生Elasticsearch查詢DSL。
示例:QueryBuilders.wrapperQuery(“{“term”: {“field”:“value”}}”)
注意事項:允許直接使用JSON格式的查詢字符串,這使得可以直接復用Elasticsearch的原生查詢DSL進行查詢。

matchBoolPrefixQuery

使用方法:創建一個匹配查詢,該查詢首先將文本分析為詞條,然后為每個詞條搜索,對于最后一個詞條使用前綴匹配。
示例:QueryBuilders.matchBoolPrefixQuery(“fieldName”, “text to search”)
注意事項:這種查詢結合了布爾查詢和前綴查詢的特性,適用于自動補全和搜索建議場景。

typeQuery(已棄用)

使用方法:基于文檔類型進行查詢。
示例:QueryBuilders.typeQuery(“typeName”)
注意事項:自Elasticsearch
6.x以后,官方不推薦使用多類型,并在7.x版本中完全移除了類型概念。因此,這個查詢在最新版本的Elasticsearch中不再適用。

moreLikeThisQuery

使用方法:查找與給定文本或文檔相似的文檔。
示例:QueryBuilders.moreLikeThisQuery(new String[]{“fieldName”}, new String[]{“text”}, null)
注意事項:可以基于一段文本、一組文檔或二者結合來查找相似文檔。適用于實現“查找相似內容”的功能。

regexpQuery

使用方法:使用正則表達式進行查詢,以匹配符合正則表達式的文檔。
示例:QueryBuilders.regexpQuery(“fieldName”, “regexp”)
注意事項:雖然強大,但復雜的正則表達式可能會影響查詢性能。謹慎使用。

spanTermQuery

使用方法:創建一個span查詢,匹配包含指定詞條的文檔。
示例:QueryBuilders.spanTermQuery(“fieldName”, “value”)
注意事項:Span查詢是低級查詢,適用于執行復雜的跨度查詢,如找到鄰近的、有序的詞條。

spanNearQuery

使用方法:查找所有與指定的span查詢匹配且彼此之間距離滿足指定條件的文檔。
示例:QueryBuilders.spanNearQuery(QueryBuilders.spanTermQuery(“field”,
“value1”), 12).addClause(QueryBuilders.spanTermQuery(“field”, “value2”))
注意事項:用于處理詞條的位置和順序敏感的復雜查詢。

spanFirstQuery

使用方法:查找所有在文檔開頭一定范圍內匹配指定span查詢的文檔。
示例:QueryBuilders.spanFirstQuery(QueryBuilders.spanTermQuery(“field”, “value”), 3)
注意事項:適用于只關心文檔開頭部分的查詢場景。

geoShapeQuery

使用方法:基于地理形狀進行查詢,查找與指定地理形狀相關的文檔。
示例:QueryBuilders.geoShapeQuery(“locationField”, shapeBuilder)
注意事項:需要確保字段被映射為geo_shape類型。這種查詢適用于復雜的地理空間搜索。

scriptScoreQuery

使用方法:使用腳本來計算查詢的得分。
示例:QueryBuilders.scriptScoreQuery(QueryBuilders.matchAllQuery(), new
Script(ScriptType.INLINE, “painless”, “Math.random()”, Collections.emptyMap()))
注意事項:提供了通過腳本自定義得分邏輯的靈活性,但需要注意腳本的性能和安全性。

percolateQuery

使用方法:執行percolate查詢,查找與指定文檔匹配的查詢。
示例:QueryBuilders.percolateQuery(“queryField”, docBuilder)
注意事項:用于實現反向搜索的場景,即將文檔作為查詢條件來匹配存儲的查詢。

hasChildQuery

使用方法:查找與至少一個滿足指定查詢條件的子文檔相關聯的父文檔。
示例:QueryBuilders.hasChildQuery(“child_type”,
QueryBuilders.termQuery(“field”, “value”), ScoreMode.Avg)
注意事項:適用于父子關聯數據模型。需要在映射時定義好父子關系。

hasParentQuery

使用方法:查找至少有一個父文檔滿足指定查詢條件的子文檔。
示例:QueryBuilders.hasParentQuery(“parent_type”,
QueryBuilders.termQuery(“field”, “value”), false)
注意事項:與hasChildQuery相對,用于查詢子文檔基于父文檔的條件。

parent_id

使用方法:直接通過父文檔的ID來查找子文檔。
示例:QueryBuilders.parentId(“parent_type”, “parent_id”)
注意事項:需要在映射時定義好父子關系。

adjacencyMatrixQuery

使用方法:基于多個關聯文檔間的關系,構建復雜的圖查詢。
示例:通常涉及構建多個查詢條件,較為復雜,需要根據具體使用場景構建。
注意事項:適用于處理復雜的關系網絡,如社交網絡分析。

rankFeatureQuery和rankFeaturesQuery

使用方法:利用rank_feature或rank_features字段類型來影響文檔的排名。
示例:QueryBuilders.rankFeatureQuery(“feature”,ScoreFunction.saturation())
注意事項:適用于那些需要根據某些打分特征來排序的搜索場景。

matchNoneQuery

使用方法:不匹配任何文檔的查詢。
示例:QueryBuilders.matchNoneQuery()
注意事項:這種查詢可以在某些需要排除所有文檔的特定邏輯中使用。

shapeQuery

使用方法:基于形狀的地理空間查詢。
示例:QueryBuilders.geoShapeQuery(“fieldName”, shapeBuilder)
注意事項:類似于 geoShapeQuery,但專注于更復雜的形狀匹配,適用于需要高級地理空間分析的場景。

combinedFieldsQuery

使用方法:結合多個字段進行全文搜索查詢,提供跨字段的相關性評分。
示例:QueryBuilders.combinedFieldsQuery(“text”).field(“field1”).field(“field2”)
注意事項:適用于當文本可能跨多個字段時的搜索場景,幫助提升相關性評分的準確性。

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

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

相關文章

C#進階學習(六)單向鏈表和雙向鏈表,循環鏈表(下)循環鏈表

目錄 📊 鏈表三劍客:特性全景對比表 一、循環鏈表節點類 二、循環鏈表的整體設計框架 三、循環列表中的重要方法: (1)頭插法,在頭結點前面插入新的節點 (2)尾插法實現插入元素…

交換網絡基礎

學習目標 掌握交換機的基本工作原理 掌握交換機的基本配置 交換機的基本工作原理 交換機是局域網(LAN)中實現數據高效轉發的核心設備,工作在 數據鏈路層(OSI 模型第二層),其基本工作原理可概括為 “學習…

科學研究:怎么做

科研(科學研究)?? 是指通過系統化的方法,探索自然、社會或人文領域的未知問題,以發現新知識、驗證理論或解決實際問題的活動。它的核心是??基于證據的探索與創新??,旨在推動人類認知和技術的進步。 科研的核心要…

算法題(128):費解的開關

審題: 本題需要我們將多組測試用例中拉燈數小于等于6的最小拉燈數輸出,若拉燈數最小值仍大于6,則輸出-1 思路: 方法一:二進制枚舉 首先我們先分析一下基本特性: 1.所有的燈不可能重復拉:若拉的數…

MFC文件-屏幕錄像

下載本文件 本文件將獲取屏幕圖像數據的所有代碼整合到兩個文件中(ScreenRecorder.h和ScreenRecorder.cpp),使獲取屏幕圖像數據變得簡單。輸出IYUV視頻流。還可以獲取系統播放的聲音,輸出PCM音頻流。由于使用了MFC類,本…

0801ajax_mock-網絡ajax請求1-react-仿低代碼平臺項目

0 vite配置proxy代理 vite.config.ts代碼如下圖所示: import { defineConfig } from "vite"; import react from "vitejs/plugin-react";// https://vite.dev/config/ export default defineConfig({plugins: [react()],server: {proxy: {&qu…

JVM筆記【一】java和Tomcat類加載機制

JVM筆記一java和Tomcat類加載機制 java和Tomcat類加載機制 Java類加載 * loadClass加載步驟類加載機制類加載器初始化過程雙親委派機制全盤負責委托機制類關系圖自定義類加載器打破雙親委派機制 Tomcat類加載器 * 為了解決以上問題,tomcat是如何實現類加載機制的…

IP編址(來自YESLAB新網工的筆記)

上層協議類型 概念:通常指的是位于網絡層(如 IP 層)以上的協議類型,這些協議在數據傳輸時需要由網絡層(或更低層)協議承載。以 IP 協議為例,IP 報文頭部中的 協議字段(Protocol Fie…

SpringBoot學習(過濾器Filter。攔截器Interceptor。全局異常捕獲處理器GlobalExceptionHandler)(詳細使用教程)

目錄 一、過濾器Filter。 1.1定義與規范。 1.2工作原理與范圍。 1.3使用場景。 1.4 SpringBoot實現過濾器。&#xff08;Filter配置2種方式&#xff09; <1>注解配置(WebFilter、Order、ServletComponentScan)。 創建過濾器類。 啟用 Servlet 組件掃描。 <2>配置類…

c++題目_P1443 馬的遍歷

P1443 馬的遍歷 # P1443 馬的遍歷 ## 題目描述 有一個 $n \times m$ 的棋盤&#xff0c;在某個點 $(x, y)$ 上有一個馬&#xff0c;要求你計算出馬到達棋盤上任意一個點最少要走幾步。 ## 輸入格式 輸入只有一行四個整數&#xff0c;分別為 $n, m, x, y$。 ## 輸出格式 …

清華《數據挖掘算法與應用》K-means聚類算法

使用k均值聚類算法對表4.1中的數據進行聚類。代碼參考P281。 創建一個名為 testSet.txt 的文本文件&#xff0c;將以下內容復制粘貼進去保存即可&#xff1a; 0 0 1 2 3 1 8 8 9 10 10 7 表4.1 # -*- coding: utf-8 -*- """ Created on Thu Apr 17 16:59:58 …

HarmonyOS-ArkUI V2工具類:AppStorageV2:應用全局UI狀態存儲

AppStorageV2是一個能夠跨界面存儲數據,管理數據的類。開發者可以使用AppStorageV2來存儲全局UI狀態變量數據。它提供的是應用級的全局共享能力,開發者可以通過connect綁定同一個key,進行跨ability數據共享。 概述 AppStorageV2是一個單例,創建時間是應用UI啟動時。其目的…

打靶日記 zico2: 1

一、探測靶機IP&#xff08;進行信息收集&#xff09; 主機發現 arp-scan -lnmap -sS -sV -T5 -p- 192.168.10.20 -A二、進行目錄枚舉 發現dbadmin目錄下有個test_db.php 進入后發現是一個登錄界面&#xff0c;嘗試弱口令&#xff0c;結果是admin&#xff0c;一試就出 得到加…

使用Java基于Geotools的SLD文件編程式創建與磁盤生成實戰

前言 在地理信息系統&#xff08;GIS&#xff09;領域&#xff0c;地圖的可視化呈現至關重要&#xff0c;而樣式定義語言&#xff08;SLD&#xff09;文件為地圖元素的樣式配置提供了強大的支持。SLD 能夠精確地定義地圖圖層中各類要素&#xff08;如點、線、面、文本等&#x…

kubernetes》》k8s》》Service

Kubernetes 中的 Service 是用于暴露應用服務的核心抽象&#xff0c;為 Pod 提供穩定的訪問入口、負載均衡和服務發現機制。Service在Kubernetes中代表了一組Pod的邏輯集合&#xff0c;通過創建一個Service&#xff0c;可以為一組具有相同功能的容器應用提供一個統一的入口地址…

【HDFS】EC重構過程中的校驗功能:DecodingValidator

一、動機 DecodingValidator是在HDFS-15759中引入的一個用于校驗EC數據重構正確性的組件。 先說下引入DecodingValidator的動機,據很多已知的ISSUE(如HDFS-14768, HDFS-15186, HDFS-15240,這些目前都已經fix了)反饋, EC在重構的時候可能會有各種各樣的問題,導致數據錯誤…

現代c++獲取linux系統架構

現代c獲取linux系統架構 前言一、使用命令獲取系統架構二、使用c代碼獲取系統架構三、驗證四、總結 前言 本文介紹一種使用c獲取linux系統架構的方法。 一、使用命令獲取系統架構 linux系統中可以使用arch或者uname -m命令來獲取當前系統架構&#xff0c;如下圖所示 archuna…

didFinishLaunching 與「主線程首次 idle」, 哪個是更優的啟動結束時間點 ?

結論先行 在這兩個候選時間點里—— application:didFinishLaunchingWithOptions: 執行結束主線程第一次進入 idle&#xff08;RunLoop kCFRunLoopBeforeWaiting&#xff09; 若你只能二選一&#xff0c;以「主線程首次 idle」作為 啟動結束 更合理。它比 didFinishLaunchin…

Vue3 + TypeScript中defineEmits 類型定義解析

TypeScript 中 Vue 3 的 defineEmits 函數的類型定義&#xff0c;用于聲明組件可以觸發的事件。以下是分步解釋&#xff1a; 1. 泛型定義 ts <"closeDialog" | "getApplySampleAndItemX"> 作用&#xff1a;定義允許的事件名稱集合&#xff0c;即組…

樹莓派超全系列教程文檔--(34)樹莓派配置GPIO

配置GPIO GPIO控制gpio 文章來源&#xff1a; http://raspberry.dns8844.cn/documentation 原文網址 GPIO控制 gpio 通過 gpio 指令&#xff0c;可以在啟動時將 GPIO 引腳設置為特定模式和值&#xff0c;而以前需要自定義 dt-blob.bin 文件。每一行都對一組引腳應用相同的設…