当前位置: 首页 > news >正文

【ES常用查询】基于ElasticsearchRestTemplate及NativeSearchQuery的查询

包含当前es所有的查询,

需要什么代码直接照搬,改个参数就行!

用的好请务必给我点赞!!!感谢爱你们!!!

(周末更  筒)

为啥写这篇文章呢:

大概是因为目前公司用的api跟以前的不太一样,

以前我们是基于高标准客户端直接做的,

但是目前这边同事是基于ElasticsearchRestTemplate跟NativeSearchQuery做的。


import lombok.extern.slf4j.Slf4j;
import org.elasticsearch.common.lucene.search.function.CombineFunction;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.MatchAllQueryBuilder;
import org.elasticsearch.index.query.MatchQueryBuilder;
import org.elasticsearch.index.query.MultiMatchQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.query.RangeQueryBuilder;
import org.elasticsearch.index.query.TermsQueryBuilder;
import org.elasticsearch.index.query.WildcardQueryBuilder;
import org.elasticsearch.index.query.functionscore.FunctionScoreQueryBuilder;
import org.elasticsearch.index.query.functionscore.ScoreFunctionBuilder;
import org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
import org.elasticsearch.search.sort.SortBuilder;
import org.elasticsearch.search.sort.SortBuilders;
import org.elasticsearch.search.sort.SortOrder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
import org.springframework.data.elasticsearch.core.SearchHit;
import org.springframework.data.elasticsearch.core.SearchHits;
import org.springframework.data.elasticsearch.core.mapping.IndexCoordinates;
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.List;
import java.util.Map;@Slf4j
@RestController
@RequestMapping("/v/k/t/query")
public class EsTestController {/*** 测试es各种查询方法**/@AutowiredElasticsearchRestTemplate elasticsearchRestTemplate;//通配符查询@PostMapping("/es/wildcard")public void wildcard() {//*:匹配任意数量的字符(包括零个字符)。 *x*: 对x做前后N位做模糊查询,前后有多少值都可以查到(也可以左模糊或者右模糊)//?:用于匹配单个字符.    user?a: user?a   匹配user1a,但不匹配user123a//^:必须以某个字符开头,如^user*:必须以user开头//$:必须以某个字符结尾,如user$:必须以user结尾BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();//wildcardQuery:通配符查询WildcardQueryBuilder bsVersion = QueryBuilders.wildcardQuery("bsVersion", "*1*");WildcardQueryBuilder bsVersion2 = QueryBuilders.wildcardQuery("type", "*j*");boolQueryBuilder.must(bsVersion).should(bsVersion2);NativeSearchQuery dsl = new NativeSearchQueryBuilder()}//高亮//默认情况下:只能对查询字段高亮!!!//加了.requireFieldMatch(false) 可以对非查询字段高亮,具体看下文@PostMapping("/es/highlight")public void highlight() {BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();//wildcardQuery:通配符查询WildcardQueryBuilder bsVersion = QueryBuilders.wildcardQuery("bsVersion", "*1*");WildcardQueryBuilder bsVersion2 = QueryBuilders.wildcardQuery("type", "*j*");boolQueryBuilder.must(bsVersion).should(bsVersion2);NativeSearchQuery dsl = new NativeSearchQueryBuilder().withQuery(boolQueryBuilder).withHighlightFields(//.requireFieldMatch(false) : 加了可以对非查询字段高亮new HighlightBuilder.Field("bsVersion").preTags("<em>").postTags("</em>").requireFieldMatch(false),new HighlightBuilder.Field("provinceNameCn").preTags("<em>").postTags("</em>").requireFieldMatch(false),new HighlightBuilder.Field("isp").preTags("<em>").postTags("</em>").requireFieldMatch(false),new HighlightBuilder.Field("type").preTags("<em>").postTags("</em>").requireFieldMatch(false),new HighlightBuilder.Field("agentId").preTags("<em>").postTags("</em>").requireFieldMatch(false)).build();SearchHits<Map> search = elasticsearchRestTemplate.search(dsl, Map.class, IndexCoordinates.of("298_ops-web-js_1"));log.info("总条数:{}", search.getTotalHits());for (SearchHit<Map> searchHit : search.getSearchHits()) {// 高亮字段是个大MAP  高亮字段集合 = {bsVersion=[<em>115</em>]}  //K=字段名 V=高亮了的数据集合Map<String, List<String>> highlightFields = searchHit.getHighlightFields();System.out.println("获取高亮字段集合:bsVersion =  " + highlightFields.get("bsVersion"));System.out.println("获取高亮字段集合:provinceNameCn =  " + highlightFields.get("provinceNameCn"));System.out.println("获取高亮字段集合:isp =  " + highlightFields.get("isp"));System.out.println("获取高亮字段集合:type =  " + highlightFields.get("type"));System.out.println("获取高亮字段集合:agentId =  " + highlightFields.get("agentId"));List<String> bsVersionResult = highlightFields.get("bsVersion");for (String s : bsVersionResult) {System.out.println("bsVersion集合每一个值为 = " + s);}//            highlightFields.forEach((k, v) -> {
//                //获取高亮字段:k = bsVersion v = [<em>115</em>]
//                System.out.println("获取高亮字段:k = " + k + " v = " + v);
//            });}log.info("总条数:{}", search.getTotalHits());System.out.println("search.getSearchHits().size() = " + search.getSearchHits().size());}//排序@PostMapping("/es/sort")public void sort() {MatchAllQueryBuilder matchAllQuery = QueryBuilders.matchAllQuery();//备注:这里用的是NativeSearchQueryBuilder:xxxBuilder。最后一定要.build();,不然条件用不了NativeSearchQuery dsl = new NativeSearchQueryBuilder().withQuery(matchAllQuery)//备注:应该是要keyword,paasword这一类才能排序。我用text类型排序报:非法字段异常.withSorts(SortBuilders.fieldSort("appId").order(SortOrder.ASC)) //排序:根据bsVersion升序排序.build();SearchHits<Map> search = elasticsearchRestTemplate.search(dsl, Map.class, IndexCoordinates.of("298_ops-web-js_1"));log.info("总条数:{}", search.getTotalHits());for (SearchHit<Map> searchHit : search.getSearchHits()) {System.out.println("单条文档的原数据 = " + searchHit.getContent());System.out.println("单条文档的id = " + searchHit.getId());System.out.println("单条文档的评分 = " + searchHit.getScore());System.out.println("单条文档索引名(表名) = " + searchHit.getIndex());//298_ops-web-js_1就是你输入的索引库名}}//分页@PostMapping("/es/page")public void page() {Integer page = 1;Integer size = 10;MatchAllQueryBuilder matchAllQuery = QueryBuilders.matchAllQuery();NativeSearchQuery dsl = new NativeSearchQuery(matchAllQuery);//分页Pageable pageable = PageRequest.of((page - 1) * size, size);dsl.setPageable(pageable);SearchHits<Map> search = elasticsearchRestTemplate.search(dsl, Map.class, IndexCoordinates.of("298_ops-web-js_1"));log.info("总条数:{}", search.getTotalHits());// 获取当前页数log.info("当前页数:{}", page);// 获取当前页的条数int currentSize = search.getSearchHits().size();log.info("当前页条数:{}", currentSize);//数据列表:search.getSearchHits()  for出每一条,然后加到list中for (SearchHit<Map> searchHit : search.getSearchHits()) {System.out.println("单条文档的原数据 = " + searchHit.getContent());System.out.println("单条文档的id = " + searchHit.getId());System.out.println("单条文档的评分 = " + searchHit.getScore());System.out.println("单条文档索引名(表名) = " + searchHit.getIndex());//298_ops-web-js_1就是你输入的索引库名}}//布尔查询@PostMapping("/es/boolQueryBuilder")public void boolQueryBuilder() {BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();//must 必须满足且参与算分boolQueryBuilder.must(QueryBuilders.matchQuery("bsVersion", "114"));//mustNot 必须不满足   appID 300-700之间不参与查询(就是直接筛掉了)boolQueryBuilder.mustNot(QueryBuilders.rangeQuery("appId").gte("300").lte("700"));//filter 必须满足,且不参与算分
//        boolQueryBuilder.filter(QueryBuilders.termQuery("agentId", "298_ead348abbaf30f48"));NativeSearchQuery dsl = new NativeSearchQuery(boolQueryBuilder);SearchHits<Map> search = elasticsearchRestTemplate.search(dsl, Map.class, IndexCoordinates.of("298_ops-web-js_1"));log.info("总条数:{}", search.getTotalHits());for (SearchHit<Map> searchHit : search.getSearchHits()) {System.out.println("单条文档的原数据 = " + searchHit.getContent());System.out.println("单条文档的id = " + searchHit.getId());System.out.println("单条文档的评分 = " + searchHit.getScore());System.out.println("单条文档索引名(表名) = " + searchHit.getIndex());//298_ops-web-js_1就是你输入的索引库名}}//算分函数查询@PostMapping("/es/FunctionScoreQueryBuilder")public void FunctionScoreQueryBuilder() {FunctionScoreQueryBuilder functionScoreQueryBuilder = QueryBuilders.functionScoreQuery(//原始查询QueryBuilders.matchAllQuery(),//算分数组new FunctionScoreQueryBuilder.FilterFunctionBuilder[]{//第一个元素new FunctionScoreQueryBuilder.FilterFunctionBuilder(//过滤器QueryBuilders.matchQuery("bsVersion", "114"),//权重ScoreFunctionBuilders.weightFactorFunction(10)),//第二个元素new FunctionScoreQueryBuilder.FilterFunctionBuilder(//过滤器QueryBuilders.matchQuery("bsVersion", "115"),//权重ScoreFunctionBuilders.weightFactorFunction(10))}).boostMode(CombineFunction.REPLACE);NativeSearchQuery dsl = new NativeSearchQuery(functionScoreQueryBuilder);SearchHits<Map> search = elasticsearchRestTemplate.search(dsl, Map.class, IndexCoordinates.of("298_ops-web-js_1"));log.info("总条数:{}", search.getTotalHits());for (SearchHit<Map> searchHit : search.getSearchHits()) {System.out.println("单条文档的原数据 = " + searchHit.getContent());System.out.println("单条文档的id = " + searchHit.getId());System.out.println("单条文档的评分 = " + searchHit.getScore());System.out.println("单条文档索引名(表名) = " + searchHit.getIndex());//298_ops-web-js_1就是你输入的索引库名}}//范围查询@PostMapping("/es/rangeQuery")public void rangeQuery() {//范围查询 appId字段  >=0   <=200   的数据RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("appId").gte("0").lte("200");NativeSearchQuery dsl = new NativeSearchQuery(rangeQueryBuilder);SearchHits<Map> search = elasticsearchRestTemplate.search(dsl, Map.class, IndexCoordinates.of("298_ops-web-js_1"));log.info("总条数:{}", search.getTotalHits());for (SearchHit<Map> searchHit : search.getSearchHits()) {System.out.println("单条文档的原数据 = " + searchHit.getContent());System.out.println("单条文档的id = " + searchHit.getId());System.out.println("单条文档的评分 = " + searchHit.getScore());System.out.println("单条文档索引名(表名) = " + searchHit.getIndex());//298_ops-web-js_1就是你输入的索引库名}}//精确查询@PostMapping("/es/termQuery")public void termQuery() {//根据isp字段 精确查询 内网IPTermsQueryBuilder termsQueryBuilder = QueryBuilders.termsQuery("isp", " 内网IP ");NativeSearchQuery dsl = new NativeSearchQuery(termsQueryBuilder);SearchHits<Map> search = elasticsearchRestTemplate.search(dsl, Map.class, IndexCoordinates.of("298_ops-web-js_1"));log.info("总条数:{}", search.getTotalHits());for (SearchHit<Map> searchHit : search.getSearchHits()) {System.out.println("单条文档的原数据 = " + searchHit.getContent());System.out.println("单条文档的id = " + searchHit.getId());System.out.println("单条文档的评分 = " + searchHit.getScore());System.out.println("单条文档索引名(表名) = " + searchHit.getIndex());//298_ops-web-js_1就是你输入的索引库名}}//多字段查询@PostMapping("/es/multiMatchQuery")public void multiMatchQuery() {//备注:字段必须是text类型,可以分词类型!!!!//查找keyword、数值、日期、boolean等会报错!!!//如果放入精确类型的字段,会报错!!!!MultiMatchQueryBuilder multiMatchQuery = QueryBuilders.multiMatchQuery("114", "bsVersion", "type");//查询114根据"bsVersion","type"NativeSearchQuery dsl = new NativeSearchQuery(multiMatchQuery);SearchHits<Map> search = elasticsearchRestTemplate.search(dsl, Map.class, IndexCoordinates.of("298_ops-web-js_1"));log.info("总条数:{}", search.getTotalHits());for (SearchHit<Map> searchHit : search.getSearchHits()) {System.out.println("单条文档的原数据 = " + searchHit.getContent());System.out.println("单条文档的id = " + searchHit.getId());System.out.println("单条文档的评分 = " + searchHit.getScore());System.out.println("单条文档索引名(表名) = " + searchHit.getIndex());//298_ops-web-js_1就是你输入的索引库名}}//单字段查询@PostMapping("/es/matchQuery")public void matchQuery() {MatchQueryBuilder matchQuery = QueryBuilders.matchQuery("bsVersion", "114");NativeSearchQuery dsl = new NativeSearchQuery(matchQuery);SearchHits<Map> search = elasticsearchRestTemplate.search(dsl, Map.class, IndexCoordinates.of("298_ops-web-js_1"));log.info("总条数:{}", search.getTotalHits());for (SearchHit<Map> searchHit : search.getSearchHits()) {System.out.println("单条文档的原数据 = " + searchHit.getContent());System.out.println("单条文档的id = " + searchHit.getId());System.out.println("单条文档的评分 = " + searchHit.getScore());System.out.println("单条文档索引名(表名) = " + searchHit.getIndex());//298_ops-web-js_1就是你输入的索引库名}}//查询所有@PostMapping("/es/matchAllQuery")public void matchAllQuery() {MatchAllQueryBuilder matchAllQuery = QueryBuilders.matchAllQuery();NativeSearchQuery dsl = new NativeSearchQuery(matchAllQuery);SearchHits<Map> search = elasticsearchRestTemplate.search(dsl, Map.class, IndexCoordinates.of("298_ops-web-js_1"));log.info("总条数:{}", search.getTotalHits());log.info("查询原始对象:{}", search.getSearchHits());log.info("分数值:{}", search.getMaxScore());log.info("有无聚合:{}", search.hasAggregations());log.info("返回搜索命中数量的关系,例如精确值、估计值:{}", search.getTotalHitsRelation());log.info("判断是否存在搜索命中结果:{}", search.hasSearchHits());//原始结果的每一条数据for (SearchHit<Map> searchHit : search.getSearchHits()) {System.out.println("单条文档 = " + searchHit);System.out.println("单条文档的原数据 = " + searchHit.getContent());}}}

————————————————————————————————————

相关文章:

【ES常用查询】基于ElasticsearchRestTemplate及NativeSearchQuery的查询

包含当前es所有的查询&#xff0c; 需要什么代码直接照搬&#xff0c;改个参数就行&#xff01; 用的好请务必给我点赞&#xff01;&#xff01;&#xff01;感谢爱你们&#xff01;&#xff01;&#xff01; &#xff08;周末更 筒&#xff09; 为啥写这篇文章呢&#xff…...

全志XR806基于http的无线ota功能实验

XR806不仅硬件功能多&#xff0c;XR806也提供了功能极其丰富的SDK&#xff0c;几天体验下来非常容易上手。常见的功能几乎都有相应的cmd或demo实现&#xff0c;HAL也做得非常全面&#xff0c;非常适合快速开发。这一点超级好评&#xff01;本文章要实现的无线OTA也基于该SDK。 …...

2023年11月15号期中测验选择题(Java)

本篇续接《2023年11月15号期中测验判断题&#xff08;Java&#xff09;》->传送门 2-1 以下程序运行结果是 public class Test extends Father{private String name"test";public static void main(String[] args){Test test new Test();System.out.println(tes…...

C# static关键字详解

在C#中&#xff0c;static关键字有许多重要的用途。以下是关于如何使用static关键字的一些详细信息&#xff1a; 静态类&#xff08;Static Classes&#xff09;&#xff1a;静态类是不能实例化的类&#xff0c;它的所有成员都是静态的。静态类常常用作工具类或帮助类&#xff…...

开发一款回合制游戏,需要注意什么?

随着游戏行业的蓬勃发展&#xff0c;回合制游戏因其深度的策略性和令人着迷的游戏机制而受到玩家们的热烈欢迎。如果你计划投身回合制游戏的开发领域&#xff0c;本文将为你提供一份详细的指南&#xff0c;从游戏设计到发布&#xff0c;助你成功打造一款引人入胜的游戏。 1. 游…...

java的包装类

目录 1. 包装类 1.1 基本数据类型和对应的包装类 1.2 装箱和拆箱 1.3 自动装箱和自动拆箱 1. 包装类 在Java中&#xff0c;由于基本类型不是继承自Object&#xff0c;为了在泛型代码中可以支持基本类型&#xff0c;Java给每个基本类型都对应了 一个包装类型。 若想了解…...

【数据结构(一)】线性结构和非线性结构

文章目录 线性结构和非线性结构1. 线性结构2. 非线性结构 线性结构和非线性结构 数据结构包括&#xff1a;线性结构和非线性结构。 1. 线性结构 线性结构作为最常用的数据结构&#xff0c;其特点是数据元素之间存在一对一的线性关系。线性结构有两种不同的存储结构&#xff…...

持续集成指南:GitHubAction 自动构建+部署AspNetCore项目

前言 之前研究了使用 GitHub Action 自动构建和发布 nuget 包&#xff1a;开发现代化的.NetCore控制台程序&#xff1a;(4)使用GithubAction自动构建以及发布nuget包 现在更进一步&#xff0c;使用 GitHub Action 在其提供的 runner 里构建 docker 镜像&#xff0c;之后提交到阿…...

Docker 笔记(三)--容器

Docker 笔记&#xff08;三&#xff09;–容器 记录Docker 安装操作记录&#xff0c;便于查询。 参考 链接: Docker 入门到实战教程(三)镜像和容器链接: docker run中的-itd参数正确使用链接: docker官方文档链接: 阿里云Debian 镜像链接: Debian 全球镜像站链接: Debian/Ub…...

gd32关于IO引脚配置的一些问题

一、gd32f103的PA15问题 1、 #define GPIO_SWJ_NONJTRST_REMAP ((uint32_t)0x00300100U) /*!< full SWJ(JTAG-DP SW-DP),but without NJTRST */ #define GPIO_SWJ_SWDPENABLE_REMAP ((uint32_t)0x00300200U) /*!< JTAG-DP disabled and SW-DP enab…...

QT小记:警告Use multi-arg instead

"Use multi-arg instead" 是一个提示&#xff0c;建议使用 QObject::tr() 函数的多参数版本来处理多个占位符&#xff0c;而不是使用单参数版本。 在 Qt 中&#xff0c;tr() 是用于进行文本翻译&#xff08;国际化&#xff09;的函数。它允许你在应用程序中使用多种…...

皮肤性病科专家谭巍主任提出HPV转阴后饮食七点建议

HPV转阴是每一位感染者都期盼的&#xff0c;因为转阴所以健康&#xff0c;只有转为阴性才意味着不具备传染性&#xff0c;从此也不必再害怕将病毒传染给家人的风险&#xff0c;也不必再担忧持续感染而引发的健康风险。总之&#xff0c;HPV转阴是预示感染者恢复健康与否的主要标…...

快速弄懂C++中的智能指针

智能指针是C中的一个对象&#xff0c;它的行为类似于指针&#xff0c;但它提供了自动的内存管理功能。当智能指针超出作用域时&#xff08;比如说在函数中使用智能指针指向了一个对象&#xff0c;当该函数结束时会自动销毁该对象&#xff09;&#xff0c;它会自动删除其所指向的…...

C#调用C++ dll教程

文章目录 一、创建C dll项目二、C#程序员调用C dll三、C与C#数据类型对应基本数据类型对应表C指针类型与C#类型 在使用C#开发客户端时&#xff0c;有时需要调用C dll&#xff0c;本篇博客来介绍C#程序如何调用C dll。 一、创建C dll项目 首先使用VS2022创建C dll项目&#xf…...

计算机毕设 深度学习 大数据 股票预测系统 - python lstm

文章目录 0 前言1 课题意义1.1 股票预测主流方法 2 什么是LSTM2.1 循环神经网络2.1 LSTM诞生 2 如何用LSTM做股票预测2.1 算法构建流程2.2 部分代码 3 实现效果3.1 数据3.2 预测结果项目运行展示开发环境数据获取 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要…...

97.qt qml-自定义Table之实现ctrl与shift多选

我们之前实现了:93.qt qml-自定义Table优化(新增:水平拖拽/缩放自适应/选择使能/自定义委托)-CSDN博客 实现选择使能的时候,我们只能一行行去点击选中,非常麻烦,所以本章我们实现ctrl多选与shift多选、 所以在Table控件新增两个属性: 1.实现介绍 ctrl多选实现原理:当我…...

运行软件报错mfc140.dll丢失?分享mfc140.dll丢失的解决方法

小伙伴们&#xff0c;你是否也有过这样的经历&#xff1a;每当碰到诸如" mfc140.dll 丢失 "之类的烦人错误时&#xff0c;你是不是会一头雾水&#xff0c;完全不知道从何下手去解决&#xff1f;不要担心&#xff0c;接下来咱就给你提供这样一篇实用教程&#xff0c;教…...

milvus数据库-连接

Milvus 支持 19530 和 9091 两个端口&#xff1a; 端口 19530 用于 gRPC 和 RESTful API。 这是您使用不同 Milvus SDK 或 HTTP 客户端连接到 Milvus 服务器时的默认端口。 端口 9091 用于 Kubernetes 内的指标收集、pprof 分析和运行状况探测。 它用作管理端口。 1.连接到数…...

ios + vue3 Teleport + inset 兼容性问题

目录 1&#xff0c;问题表现2&#xff0c;解决步骤1&#xff0c;teleport 的问题2&#xff0c;inset 的问题3&#xff0c;teleport 的问题之二 1&#xff0c;问题表现 使用 vue3 的 Teleport 实现的 dialog 弹窗&#xff0c;但是在 ios app 中嵌套的 h5 中无法打开。 直接在io…...

计蒜客T1654 数列分段(C语言实现)

【题目描述】对于给定的一个长度为n的正整数数列ai&#xff0c;现要将其分成连续的若干段&#xff0c;并且每段和不超过m&#xff08;可以等于m&#xff09;&#xff0c;问最少能将其分成多少段使得满足要求。 【输入格式】第一行包含两个正整数n&#xff0c;m&#xff0c;表示…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...