ES8.13.0 java client請求響應報錯status: 200, [es/search] Failed to decode response

最近在做商城項目使用ES8.13.0做商品復雜的檢索功能時,遇到一個報錯如下:

2024-07-05 10:47:53.994 ERROR 10708 --- [nio-7500-exec-1] com.tfq.exception.RRExceptionHandler     : co.elastic.clients.transport.TransportException: node: http://127.0.0.1:9200/, status: 200, [es/search] Failed to decode responsejava.lang.RuntimeException: co.elastic.clients.transport.TransportException: node: http://127.0.0.1:9200/, status: 200, [es/search] Failed to decode responseat com.tfq.service.impl.MallSearchServiceImpl.search(MallSearchServiceImpl.java:64) ~[classes/:na]at com.tfq.app.SearchController.listPage(SearchController.java:23) ~[classes/:na]at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_221]at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_221]org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.23.jar:5.3.23]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.68.jar:9.0.68]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.68.jar:9.0.68]at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96) [spring-boot-actuator-2.6.13.jar:2.6.13]at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.23.jar:5.3.23]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.68.jar:9.0.68]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.68.jar:9.0.68]at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) [spring-web-5.3.23.jar:5.3.23]at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) [spring-web-5.3.23.jar:5.3.23]at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) [tomcat-embed-core-9.0.68.jar:9.0.68]at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) [tomcat-embed-core-9.0.68.jar:9.0.68]at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) [tomcat-embed-core-9.0.68.jar:9.0.68]at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) [tomcat-embed-core-9.0.68.jar:9.0.68]at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) [tomcat-embed-core-9.0.68.jar:9.0.68]at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) [tomcat-embed-core-9.0.68.jar:9.0.68]at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.68.jar:9.0.68]at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) [tomcat-embed-core-9.0.68.jar:9.0.68]at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) [tomcat-embed-core-9.0.68.jar:9.0.68]at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) [tomcat-embed-core-9.0.68.jar:9.0.68]at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat-embed-core-9.0.68.jar:9.0.68]at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) [tomcat-embed-core-9.0.68.jar:9.0.68]at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) [tomcat-embed-core-9.0.68.jar:9.0.68]at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.68.jar:9.0.68]at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) [tomcat-embed-core-9.0.68.jar:9.0.68]at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) [tomcat-embed-core-9.0.68.jar:9.0.68]at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.68.jar:9.0.68]at java.lang.Thread.run(Thread.java:748) [na:1.8.0_221]
Caused by: co.elastic.clients.transport.TransportException: node: http://127.0.0.1:9200/, status: 200, [es/search] Failed to decode responseat co.elastic.clients.transport.ElasticsearchTransportBase.decodeTransportResponse(ElasticsearchTransportBase.java:404) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.transport.ElasticsearchTransportBase.getApiResponse(ElasticsearchTransportBase.java:363) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.transport.ElasticsearchTransportBase.performRequest(ElasticsearchTransportBase.java:147) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.elasticsearch.ElasticsearchClient.search(ElasticsearchClient.java:1923) ~[elasticsearch-java-8.13.0.jar:na]at com.tfq.service.impl.MallSearchServiceImpl.search(MallSearchServiceImpl.java:59) ~[classes/:na]... 55 common frames omitted
Caused by: co.elastic.clients.json.JsonpMappingException: Error deserializing co.elastic.clients.elasticsearch.core.search.Hit: jakarta.json.JsonException: Jackson exception (JSON path: hits.hits[0]._source) (line no=1, column no=244, offset=-1)at co.elastic.clients.json.JsonpMappingException.from0(JsonpMappingException.java:134) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.JsonpMappingException.from(JsonpMappingException.java:121) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:218) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:148) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:85) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:318) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:280) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:77) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:78) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:192) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:148) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:77) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:79) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:78) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:192) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:148) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:77) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:79) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:43) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:43) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.transport.endpoints.EndpointWithResponseMapperAttr$1.deserialize(EndpointWithResponseMapperAttr.java:56) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.transport.ElasticsearchTransportBase.decodeTransportResponse(ElasticsearchTransportBase.java:399) ~[elasticsearch-java-8.13.0.jar:na]... 59 common frames omitted
Caused by: jakarta.json.JsonException: Jackson exceptionat co.elastic.clients.json.jackson.JacksonUtils.convertException(JacksonUtils.java:39) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.jackson.JacksonJsonpMapper$JacksonValueParser.deserialize(JacksonJsonpMapper.java:142) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:77) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.JsonpMapperBase.deserialize(JsonpMapperBase.java:69) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.JsonpDeserializer$1.deserialize(JsonpDeserializer.java:108) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.NamedDeserializer.deserialize(NamedDeserializer.java:64) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:78) ~[elasticsearch-java-8.13.0.jar:na]at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:192) ~[elasticsearch-java-8.13.0.jar:na]... 78 common frames omitted
Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "skuId" (class com.tfq.vo.SearchResult), not marked as ignorable (7 known properties: "totalPages", "catalogVos", "brandVos", "products", "pageNum", "attrVos", "total"])at [Source: REDACTED (`StreamReadFeature.INCLUDE_SOURCE_IN_LOCATION` disabled); line: 1, column: 244] (through reference chain: com.tfq.vo.SearchResult["skuId"])at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:61) ~[jackson-databind-2.17.0.jar:2.17.0]at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:1153) ~[jackson-databind-2.17.0.jar:2.17.0]at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:2241) ~[jackson-databind-2.17.0.jar:2.17.0]at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1793) ~[jackson-databind-2.17.0.jar:2.17.0]at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1771) ~[jackson-databind-2.17.0.jar:2.17.0]at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:316) ~[jackson-databind-2.17.0.jar:2.17.0]at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:177) ~[jackson-databind-2.17.0.jar:2.17.0]at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:342) ~[jackson-databind-2.17.0.jar:2.17.0]at com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:4881) ~[jackson-databind-2.17.0.jar:2.17.0]at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3104) ~[jackson-databind-2.17.0.jar:2.17.0]at co.elastic.clients.json.jackson.JacksonJsonpMapper$JacksonValueParser.deserialize(JacksonJsonpMapper.java:140) ~[elasticsearch-java-8.13.0.jar:na]... 84 common frames omitted2024-07-05 10:47:54.011  WARN 10708 --- [nio-7500-exec-1] .m.m.a.ExceptionHandlerExceptionResolver : Resolved [java.lang.RuntimeException: co.elastic.clients.transport.TransportException: node: http://127.0.0.1:9200/, status: 200, [es/search] Failed to decode response]

看第一個報錯“status: 200, [es/search] Failed to decode response”在網上搜索是es請求設置Header有問題,搜了一圈發現設置了header并沒有用。于是在仔細看第三個異常:

Error deserializing co.elastic.clients.elasticsearch.core.search.Hit: jakarta.json.JsonException: Jackson exception (JSON path: hits.hits[0]._source)?

發現是請求es返回的結果類沒有使用jackson的Json注釋導致不能序列化轉json。在對應的返回類上添加注釋:

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;@Data
@JsonIgnoreProperties(ignoreUnknown=true)
public class SearchResult {/*** 查詢的所有商品信息*/private List<SkuEsModel> products;/*** 當前頁碼*/private Integer pageNum;/*** 總記錄數*/private Long total;
}

在service上發送請求即可獲取對應es的索引product的查詢數據。

public SearchResult search(SearchParam searchParam) {SearchResult result = null;ElasticsearchClient instance = elasticClient.getElasticsearchClient();//1.動態構建出查詢需要的DSL語句//2.準備檢索請求SearchRequest searchRequest = buildSearchRequest(searchParam);System.out.println("dsl:" + printDSL(searchRequest));//3.執行檢索請求try {SearchResponse<SearchResult> response = instance.search(searchRequest, SearchResult.class);System.out.println("查詢返回結果:"+response);//result = buildSearchResult();} catch(IOException e) {throw new RuntimeException(e);}//4.分析響應數據封裝成我們需要的格式return result;
}/*** 準備檢索請求* 1.模糊匹配,過濾(按照屬性,分類,品牌,價格區間,庫存),排序,分頁,高亮,聚合分析** @return 檢索請求*/private SearchRequest buildSearchRequest(SearchParam searchParam) {SearchRequest.Builder builder = new SearchRequest.Builder();builder.index(EsConstant.PRODUCT_INDEX);/*** 模糊匹配,過濾(按照屬性,分類,品牌,價格區間,庫存)*///1.1.bool - must查詢BoolQuery.Builder boolQueryBuilder = QueryBuilders.bool();if(!StringUtils.isEmpty(searchParam.getKeyword())) {boolQueryBuilder.must(query -> query.match(f -> f.field("skuTitle").query(searchParam.getKeyword())));}//1.2.bool - filter - 按照三級分類id查詢if(searchParam.getCatelog3Id() != null) {boolQueryBuilder.filter(query -> query.term(f -> f.field("catalogId").value(searchParam.getCatelog3Id().toString())));}builder.query(b -> b.bool(boolQueryBuilder.build()));//2.2.分頁builder.from(((searchParam.getPageNum() - 1) * EsConstant.PRODUCT_PAGE_NUM));builder.size(EsConstant.PRODUCT_PAGE_NUM);return builder.build();
}

結合以上代碼整合到對應系統即可。

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

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

相關文章

WBCE CMS v1.5.2 遠程命令執行漏洞(CVE-2022-25099)

前言 CVE-2022-25099 是一個影響 WBCE CMS v1.5.2 的嚴重安全漏洞&#xff0c;具體存在于 /languages/index.php 組件中。該漏洞允許攻擊者通過上傳精心構造的 PHP 文件在受影響的系統上執行任意代碼。 技術細節 受影響組件&#xff1a;/languages/index.php受影響版本&…

如何在 Odoo 16 中向新視圖添加字段

例如,讓我們看看如何在新視圖或新操作窗口中創建“many2one”字段。 請考慮下面的屏幕截圖,它表示不包含任何字段的新視圖類型或客戶端操作窗口。 我們現在可以將與“res.partner”關聯的“多對一”字段引入到我們的新視圖或客戶端操作窗口中。 為了實現這一點,在 XML 模板…

ShardingSphere

ShardingSphere 是一個開源的分布式數據庫中間件生態系統&#xff0c;由 Apache 基金會孵化和維護。它的主要目標是幫助開發者解決分庫分表、分布式事務和數據加密等分布式數據庫應用中的常見問題。ShardingSphere 提供了多種組件&#xff0c;如 Sharding-JDBC、Sharding-Proxy…

Using a text embedding model locally with semantic kernel

題意&#xff1a;在本地使用帶有語義核&#xff08;Semantic Kernel&#xff09;的文本嵌入模型 問題背景&#xff1a; Ive been reading Stephen Toubs blog post about building a simple console-based .NET chat application from the ground up with semantic-kernel. Im…

idea中maven全局配置

配置了就不需要每次創建項目都來設置maven倉庫了。 1.先把項目全關了 2. 進入全局設置 3.設置maven的倉庫就可以了

SpringBoot實現多數據源切換

1. 概述 隨著項目規模的擴大和業務需求的復雜化&#xff0c;單一數據源已經不能滿足實際開發中的需求。在許多情況下&#xff0c;我們需要同時操作多個數據庫&#xff0c;或者需要將不同類型的數據存儲在不同的數據庫中。這時&#xff0c;多數據源場景成為必不可少的解決方案。…

【CentOS7.6】docker部署EMQX教程,本地鏡像直接導入(附下載鏈接),沒法在云服務器上魔法拉取鏡像的快來

總覽 先把下載鏈接放在這里吧&#xff0c;這是 EMQX 的 tar 包&#xff0c;能夠直接導入 CentOS 的 docker&#xff1a; 鏈接&#xff1a;https://pan.baidu.com/s/1rSGSLoVvj83ai6d5oolg8Q?pwd0108 提取碼&#xff1a;0108 一、安裝配置教程 1.將 EMQX-latest.tar 包導入…

服務器重裝系統時數據丟失?有哪些方法可以避免

為了避免在服務器重裝系統時數據丟失&#xff0c;可以采取以下預防措施&#xff1a; 1. 數據備份&#xff1a;在重裝系統之前&#xff0c;備份所有重要的數據和配置文件。備份可以通過以下方式進行&#xff1a; - 使用外部存儲設備(如USB硬盤、NAS等)進行備份。 - 利用備份軟件…

學習成績總是上不去?中學生把握好這5個環節,助你提高成績

在中學時代&#xff0c;考試我們并不陌生。每隔一段時間&#xff0c;學校就會安排我們參加考試。學生時代&#xff0c;我們參加的考試有很多。對于中學生來說&#xff0c;考試成績是我們一直關心的事情。很多學生非常努力的學習&#xff0c;成績卻上不去。這是非常可惜的&#…

[圖解]企業應用架構模式2024新譯本講解19-數據映射器1

1 00:00:01,720 --> 00:00:03,950 下一個我們要講的就是 2 00:00:04,660 --> 00:00:07,420 數據映射器這個模式 3 00:00:09,760 --> 00:00:13,420 這個也是在數據源模式里面 4 00:00:13,430 --> 00:00:14,820 用得最廣泛的 5 00:00:16,250 --> 00:00:19,170…

【軟件工程中的噴泉模型及其優缺點】

文章目錄 一、噴泉模型是什么&#xff1f;二、噴泉模型的優點1. 靈活性和適應性2. 迭代開發3. 風險控制 三、噴泉模型的缺點1. 需求不明確性2. 可能造成資源浪費3. 需要良好的溝通與協作 一、噴泉模型是什么&#xff1f; 噴泉模型是一種迭代增量開發模型&#xff0c;其核心理念…

鏈篦機回轉窯球團生產工藝

生球在回轉窯氧化焙燒&#xff0c;回轉窯頭部設有燃燒器&#xff0c;燃料可以采用氣體、固體、液體。 來自環冷機一冷卻段的高溫廢氣作為二次風進入窯內參與燃燒&#xff0c;燒成成品球進入環冷機。 環冷機采用鼓風冷卻&#xff0c;熱風風箱分為四段&#xff1a; 一段氣體引至…

無人機有哪些關鍵技術?

一、控制技術 無人機的核心還是在控制上&#xff0c;飛控系統的可靠性、穩定性及可擴展性是其中重要的指標。可靠性上&#xff0c;除了器件選型之外&#xff0c;目前主要靠多余度來增加&#xff1b;穩定性主要體現在多場景下仍能保持良好的工作狀態&#xff0c;主要靠算法來進…

QML-各類布局

Colunm布局 Column{id:colspacing: 30Repeater{id:repmodel: ListModel{}Button{width: 100height: 50text: "btn"index}}//開始時候移動move: Transition {NumberAnimation { properties: "x,y"; easing.type: Easing.OutBounce }}//添加時變化add:Transi…

【Nginx】docker運行Nginx及配置

Nginx鏡像的獲取 直接從Docker Hub拉取Nginx鏡像通過Dockerfile構建Nginx鏡像后拉取 二者區別 主要區別在于定制化程度和構建過程的控制&#xff1a; 直接拉取Nginx鏡像&#xff1a; 簡便性&#xff1a;直接使用docker pull nginx命令可以快速拉取官方的Nginx鏡像。這個過程…

通透!手把教你如何從頭構建一個機器學習模型

目錄 1.業務理解 2.數據收集和準備 數據采集 探索性數據分析 (EDA) 和數據清理 特征選擇 3.建立機器學習模型 選擇正確的模型 分割數據 訓練模型 模型評估 4.模型優化 5.部署模型 今天我將帶領大家一步步的來構建一個機器學習模型。 我們將按照以下步驟開發客戶流失…

賽博解壓板

目錄 開頭程序程序的流程圖程序的解壓效果(暫無&#xff0c;但可以運行一下上面的代碼)結尾 開頭 大家好&#xff0c;我叫這是我58。今天&#xff0c;我們要看關于賽博解壓板的一些東西。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #define ROW 6//ROW表示行數&#xff0c;可…

【ARM 常見匯編指令學習 7.1 -- LDRH 半字讀取指令】

請閱讀【嵌入式開發學習必備專欄】 文章目錄 LDRH 使用介紹LDRH&#xff08;Load Register Half-word&#xff09;總結 LDRH 使用介紹 在ARMv9架構中&#xff0c;匯編指令LDRH用于從內存中載入數據到寄存器的指令&#xff0c;下面將分別對它進行詳細介紹&#xff1a; LDRH&am…

【基礎算法】UE中實現輪播

本期作者&#xff1a;尼克 易知微3D引擎技術負責人 當前N 總數M 從0到M-1 從1到M 感謝閱讀&#xff0c;以上內容均由易知微3D引擎團隊原創設計&#xff0c;以及易知微版權所有&#xff0c;轉載請注明出處&#xff0c;違者必究&#xff0c;謝謝您的合作。申請轉載授權后臺回復【…

【WebKit屏幕方向API全解析】掌握現代Web應用的方向感應

標題&#xff1a;【WebKit屏幕方向API全解析】掌握現代Web應用的方向感應 WebKit作為許多現代瀏覽器的內核&#xff0c;提供了對HTML5和CSS3的廣泛支持&#xff0c;包括對屏幕方向的控制。屏幕方向API&#xff08;Screen Orientation API&#xff09;允許Web應用知道屏幕的方向…