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

ES常识8:ES8.X如何实现热词统计

文章目录

      • 一、数据采集与存储设计
        • 1. 确定需记录的字段
        • 2. 设计搜索日志索引
      • 二、数据写入与采集
      • 三、热门搜索词统计(核心逻辑)
        • 1. 基础版:近 7 天热门搜索词(按出现次数排序)
        • 2. 进阶版:加权热门词(结合点击量与搜索时长)
        • 3. 高基数优化:避免内存溢出
      • 四、缓存与实时性优化
        • 1. 定时预计算(推荐方案)
        • 2. 实时查询(轻量场景)
      • 五、推荐接口实现
      • 六、监控与调优
        • 1. 监控聚合性能
        • 2. 调整索引配置
        • 3. 处理异常词
      • 总结

基于 Elasticsearch 8.x 实现热门搜索词推荐,需结合 数据采集、索引设计、聚合统计、缓存优化 等环节。以下是分步骤的详细实现方案:

一、数据采集与存储设计

1. 确定需记录的字段

为了统计热门搜索词,需采集用户搜索行为的基础信息。推荐记录以下字段:

字段名类型说明
search_keywordkeyword用户输入的搜索词(必须使用 keyword 类型,避免分词影响统计)。
timestampdate搜索时间(用于时间窗口统计,如“近 7 天热门词”)。
user_idkeyword用户唯一标识(可选,用于去重统计独立用户搜索量)。
is_clickedboolean是否点击搜索结果(可选,作为热门度的加权指标)。
search_durationinteger搜索耗时(毫秒,可选,用于评估搜索质量)。
2. 设计搜索日志索引

在 ES 中创建索引 search_logs,存储用户搜索行为数据。索引配置示例:

PUT /search_logs
{"settings": {"index": {"number_of_shards": 3,       // 根据数据量调整分片数(建议单分片 10-50GB)"number_of_replicas": 1,     // 1 副本保证高可用"refresh_interval": "1s"    // 近实时搜索(可调整为 5s 平衡写入性能)}},"mappings": {"properties": {"search_keyword": { "type": "keyword", "doc_values": true },  // 启用 doc_values 加速聚合"timestamp": { "type": "date", "format": "epoch_millis" },"user_id": { "type": "keyword", "index": false },             // 不参与搜索,仅用于聚合"is_clicked": { "type": "boolean" },"search_duration": { "type": "integer" }}}
}

二、数据写入与采集

用户每次搜索时,将搜索行为数据写入 search_logs 索引。示例(使用 ES 客户端):

from elasticsearch import Elasticsearch
from datetime import datetimees = Elasticsearch(["http://es-node-1:9200"])def log_search(keyword: str, user_id: str, is_clicked: bool, duration: int):doc = {"search_keyword": keyword,"timestamp": int(datetime.now().timestamp() * 1000),  # 毫秒级时间戳"user_id": user_id,"is_clicked": is_clicked,"search_duration": duration}es.index(index="search_logs", document=doc)# 模拟用户搜索行为(调用示例)
log_search("机器学习教程", "user_123", is_clicked=True, duration=850)

三、热门搜索词统计(核心逻辑)

使用 ES 的 terms 聚合统计搜索词的频率,并结合时间窗口、加权指标优化结果。

1. 基础版:近 7 天热门搜索词(按出现次数排序)

统计近 7 天搜索次数最多的前 10 个关键词:

GET /search_logs/_search
{"size": 0,  // 不返回原始文档"query": {"range": {"timestamp": {"gte": "now-7d",  // 近 7 天"lte": "now"}}},"aggs": {"top_keywords": {"terms": {"field": "search_keyword","size": 10,          // 返回前 10 个词"order": { "_count": "desc" },  // 按次数降序"min_doc_count": 3   // 过滤出现次数少于 3 次的词(避免长尾词)}}}
}
2. 进阶版:加权热门词(结合点击量与搜索时长)

若需考虑搜索词的“质量”(如用户点击了结果或搜索耗时较短),可通过 sum 聚合加权:

GET /search_logs/_search
{"size": 0,"query": { "range": { "timestamp": { "gte": "now-7d" } } },"aggs": {"top_weighted_keywords": {"terms": {"field": "search_keyword","size": 10,"order": { "score": "desc" }  // 按自定义分数排序},"aggs": {"click_count": { "sum": { "field": "is_clicked" } },  // 点击次数(true=1,false=0)"avg_duration": { "avg": { "field": "search_duration" } },  // 平均耗时"score": {"script": {"source": "params.click_count * 2 + (1000 - params.avg_duration) * 0.1",  // 自定义分数公式(点击权重更高,耗时越短得分越高)"params": {"click_count": "sum(is_clicked)","avg_duration": "avg(search_duration)"}}}}}}
}
3. 高基数优化:避免内存溢出

当搜索词数量极大(如每天百万级不同词),terms 聚合可能消耗大量内存。此时可通过 shard_size 参数优化:

{"aggs": {"top_keywords": {"terms": {"field": "search_keyword","size": 10,          // 最终返回 10 个词"shard_size": 100,   // 每个分片预取 100 个词(提升准确性)"min_doc_count": 5   // 过滤低频词}}}
}

四、缓存与实时性优化

直接调用 ES 聚合接口可能因计算耗时影响推荐接口性能(尤其在高并发时)。推荐结合 缓存机制 优化:

1. 定时预计算(推荐方案)
  • 逻辑:定期(如每分钟)执行聚合查询,将结果缓存到 Redis 或 ES 的 hot_keywords 索引中。
  • 优势:减少实时聚合的计算压力,保证推荐接口的低延迟。

示例(Python 定时任务)

import redis
from elasticsearch import Elasticsearches = Elasticsearch(["http://es-node-1:9200"])
redis_client = redis.Redis(host="redis-host", port=6379)def update_hot_keywords():# 执行 ES 聚合查询response = es.search(index="search_logs",body={"size": 0,"query": {"range": {"timestamp": {"gte": "now-7d"}}},"aggs": {"top_keywords": {"terms": {"field": "search_keyword", "size": 10, "order": {"_count": "desc"}}}}})# 提取结果并缓存到 Redishot_keywords = [bucket["key"] for bucket in response["aggregations"]["top_keywords"]["buckets"]]redis_client.set("hot_keywords", str(hot_keywords), ex=60)  # 缓存 60 秒# 每 60 秒执行一次预计算
update_hot_keywords()
2. 实时查询(轻量场景)

若数据量较小或实时性要求极高(如秒级更新),可直接调用 ES 聚合接口,但需限制 sizeshard_size 以降低计算量。

五、推荐接口实现

提供一个 HTTP 接口,从缓存或 ES 读取热门词并返回。示例(使用 Flask):

from flask import Flask, jsonify
import redisapp = Flask(__name__)
redis_client = redis.Redis(host="redis-host", port=6379)@app.route("/hot_keywords")
def get_hot_keywords():# 从 Redis 读取缓存(若存在)hot_keywords = redis_client.get("hot_keywords")if hot_keywords:return jsonify(eval(hot_keywords.decode()))# 若缓存失效,直接查询 ES(备用逻辑)# (此处省略 ES 查询代码,实际应避免高频调用)return jsonify(["机器学习", "Python教程", "大数据分析"])  # 默认值if __name__ == "__main__":app.run(host="0.0.0.0", port=5000)

六、监控与调优

1. 监控聚合性能

通过 ES 的 _nodes/stats/indices/aggregations 监控聚合耗时,确保 top_keywords 聚合的执行时间在合理范围(如 < 500ms)。

2. 调整索引配置
  • refresh_interval:若写入量极大,可调整为 30s 减少段合并开销,但会降低实时性。
  • index.codec:使用 best_compression 压缩存储,减少磁盘占用(适合日志类数据)。
3. 处理异常词

通过 exclude 参数过滤无意义词(如“测试”“null”):

{"terms": {"field": "search_keyword","exclude": ["测试", "null", "undefined"]}
}

总结

基于 ES8 实现热门搜索词推荐的核心步骤为:

  1. 数据采集:记录搜索词及关联信息(时间、用户、点击等)。
  2. 索引设计:使用 keyword 类型存储搜索词,优化聚合性能。
  3. 聚合统计:通过 terms 聚合计算词频,结合时间窗口和加权指标。
  4. 缓存优化:定时预计算结果并缓存,降低实时查询压力。
  5. 接口实现:提供 HTTP 接口返回缓存或实时聚合结果。

通过以上步骤,可高效实现一个兼顾实时性与性能的热门搜索词推荐系统。

相关文章:

ES常识8:ES8.X如何实现热词统计

文章目录 一、数据采集与存储设计1. 确定需记录的字段2. 设计搜索日志索引 二、数据写入与采集三、热门搜索词统计&#xff08;核心逻辑&#xff09;1. 基础版&#xff1a;近 7 天热门搜索词&#xff08;按出现次数排序&#xff09;2. 进阶版&#xff1a;加权热门词&#xff08…...

可解释性AI 综述《Explainable AI for Industrial Fault Diagnosis: A Systematic Review》

一、研究背景与动因&#xff08;Background & Motivation&#xff09; 随着工业4.0与工业5.0的发展&#xff0c;工业生产越来越依赖自动化与智能化手段&#xff0c;以实现高效、预测性维护与运行优化。在这一背景下&#xff0c;人工智能&#xff08;AI&#xff09;与机器学…...

数据可视化-----子图的绘制及坐标轴的共享

目录 绘制固定区域的子图 &#xff08;一&#xff09;、绘制单子图 subplot()函数 Jupyter Notebook的绘图模式 &#xff08;二&#xff09;、多子图 subplots()--可以在规划好的所有区域中一次绘制多个子图 &#xff08;三&#xff09;、跨行跨列 subplot2grid()---将整…...

nginx 配置

proxy_pass 结尾斜杠规则 不带斜杠‌&#xff1a;保留原始请求路径。 location /api {proxy_pass http://backend; # 转发到 http://backend/api }带斜杠‌&#xff1a;剥离 location 匹配的路径前缀。 location /api/ {proxy_pass http://backend/; # 转发到 http://back…...

《从零开始入门递归算法:搜索与回溯的核心思想 + 剑指Offer+leetcode高频面试题实战(含可视化图解)》​

一.递归 1.汉诺塔 题目链接&#xff1a;面试题 08.06. 汉诺塔问题 - 力扣&#xff08;LeetCode&#xff09; 题目解析&#xff1a;将A柱子上的盘子借助B柱子全部移动到C柱子上。 算法原理&#xff1a;递归 当A柱子上的盘子只有1个时&#xff0c;我们可以直接将A上的盘子直…...

船舶制造业数字化转型:驶向智能海洋新航道

在全球海洋经济蓬勃发展的当下&#xff0c;船舶制造业作为海洋产业的重要支柱&#xff0c;正面临着前所未有的机遇与挑战。船舶制造周期长、技术复杂&#xff0c;从设计图纸到最终交付&#xff0c;涉及成千上万的零部件和复杂的工艺流程&#xff0c;传统制造模式已难以满足市场…...

SpringBoot 自动装配流程

Spring Boot 的自动装配&#xff08;Auto Configuration&#xff09;是其最核心的特性之一&#xff0c;它让你能“开箱即用”&#xff0c;极大简化了配置。下面是 Spring Boot 自动装配的整体流程&#xff08;从启动到生效&#xff09; 的详细解析&#xff1a; ✅ 一、整体流程…...

Vue 3 实现后端 Excel 文件流导出功能(Blob 下载详解)

&#x1f4a1; 本文以告警信息导出为例&#xff0c;介绍 Vue 3 中如何通过 Axios 调用后端接口并处理文件流&#xff0c;实现 Excel 自动下载功能。 &#x1f4d1; 目录 一、前言 二、后端接口说明 三、前端实现思路 四、导出功能完整代码 五、常见问题处理 六、效果展示 …...

基于IBM BAW的Case Management进行项目管理示例

说明&#xff1a;使用IBM BAW的难点是如何充分利用其现有功能根据实际业务需要进行设计&#xff0c;本文是示例教程&#xff0c;因CASE Manager使用非常简单&#xff0c;这里重点是说明如何基于CASE Manager进行项目管理&#xff0c;重点在方案设计思路上&#xff0c;其中涉及的…...

《Python星球日记》 第78天:CV 基础与图像处理

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、计算机视觉(CV)简介1. 什么是计算机视觉?2. 计算机视觉的应用场景3. 图像的基本属性a》像素(Pixel)b》通道(Channel)c》分辨率(Res…...

Google DeepMind 推出AlphaEvolve

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

Flink 1.13.2 日志配置优化:保留最近 7 天日志文件

Flink 1.13.2 日志配置优化:保留最近 7 天日志文件 在使用 Apache Flink 1.13.2 进行流处理任务时,合理的日志配置对于作业的监控、调试和故障排查至关重要。本文将介绍如何通过修改log4j.properties文件,将 Flink 的默认日志配置升级为保留最近 7 天的日志文件配置,并解决…...

【优化算法】协方差矩阵自适应进化策略(Covariance Matrix Adaptation Evolution Strategy,CMA-ES)

CMA-ES&#xff08;Covariance Matrix Adaptation Evolution Strategy&#xff09;算法是一种无导数、基于多元正态分布的迭代优化方法&#xff0c;通过自适应地调整搜索分布的均值、协方差矩阵和步长&#xff0c;能够高效地解决非线性、非凸的连续优化问题。 算法以最大似然和…...

基于Leaflet和天地图的免费运动场所WebGIS可视化-以长沙市为例

目录 前言 一、免费运动场所数据整理 1、本地宝数据简介 2、Java后台数据解析 二、Leaflet前端地图展示 1、基础数据准备 2、具体位置及属性标记 三、成果展示 1、空间位置分布 2、东风路立交桥运动公园 3、芙蓉区花侯路浏阳河大桥下方 4、梅岭国际小区 5、湖南大学…...

399. 除法求值

https://leetcode.cn/problems/evaluate-division/description/?envTypestudy-plan-v2&envIdtop-interview-150思路&#xff1a;读完题后我们可以发现这题的考察已经很明确了就是考我们矩阵&#xff0c;我们将矩阵构建出来后&#xff0c;这题就变成可达性分析题了。 所以解…...

QMK固件OLED显示屏配置教程:从零开始实现个性化键盘显示(实操部分)

QMK固件OLED显示屏配置教程:从零开始实现个性化键盘显示 📢 前言: 作为一名键盘爱好者,近期研究了QMK固件的OLED显示屏配置,发现网上的教程要么太过复杂,要么过于简单无法实际操作。因此决定写下这篇教程,从零基础出发,带大家一步步实现键盘OLED屏幕的配置与个性化显示…...

深度解析 Meta 开源 MR 项目《North Star》:从交互到渲染的沉浸式体验设计

🌌 一、项目概览:什么是 North Star? North Star 是由 Meta 官方推出并开源 的一款面向 Meta Quest 平台 的混合现实(MR)视觉演示项目。它不仅上线了 Horizon Store,更以完整的技术栈与高质量内容向开发者展示了如何在 VR/MR 设备上实现“视觉上限”和“交互潜力”的结…...

使用VS Code通过SSH编译Linux上的C++程序

引言 在软件开发领域&#xff0c;跨平台开发是一项常见需求。特别是对于C开发者来说&#xff0c;有时需要在Windows环境下编写代码&#xff0c;但却需要在Linux环境中编译和运行。这种情况在系统编程、嵌入式开发或高性能计算领域尤为常见。 Visual Studio Code (VS Code) 提…...

Datawhale 5月llm-universe 第2次笔记

第二章 使用 LLM API 开发应用 名词解释 Temperature 参数/场景低 Temperature&#xff08;0 ~ 0.3&#xff09;高 Temperature&#xff08;0.7 ~ 1.0&#xff09;输出特点保守、稳定、可预测创造性强、多样化、不可预测语言模型行为更少的随机性&#xff0c;倾向于选择高概…...

【Vue】CSS3实现关键帧动画

关键帧动画 两个重点keyframesanimation子属性 实现案例效果展示&#xff1a; 两个重点 keyframes 和 animation 作用&#xff1a;通过定义关键帧&#xff08;keyframes&#xff09;和动画(animation)规则&#xff0c;实现复杂的关键帧动画。 keyframes 定义动画的关键帧序列…...

Spring 模拟转账开发实战

一、转账业务场景分析 转账是金融类应用的核心场景之一&#xff0c;涉及付款方扣减金额和收款方增加金额两个关键操作。在开发中需解决以下问题&#xff1a; 业务层与数据层解耦&#xff1a;通过分层架构&#xff08;Service 层调用 Dao 层&#xff09;实现逻辑分离。数据库事…...

Baklib内容中台赋能资源管理升级

内容中台驱动管理升级 在数字化转型进程中&#xff0c;企业级内容管理工具的效能直接影响资源协同效率。以全渠道资源整合为核心的内容中台&#xff0c;通过集中化处理文档、FAQ及社区论坛等非结构化数据&#xff0c;有效解决信息孤岛问题。例如&#xff0c;某金融集团通过部署…...

数据结构(九)——排序

一、排序的基本概念 1.排序&#xff1a;重新排列表中的元素&#xff0c;使表中的元素满足按关键字有序 2.稳定性&#xff1a;Ri和Rj相对位置保持不变 3.内部排序&#xff1a;指在排序期间元素全部存在内存中的排序&#xff08;比较和移动&#xff09;&#xff0c;如插入排序…...

MinerU安装(pdf转markdown、json)

在Windows上安装MinerU&#xff0c;参考以下几个文章&#xff0c;可以成功安装&#xff0c;并使用GPU解析。 整体安装教程&#xff1a; MinerU本地化部署教程——一款AI知识库建站的必备工具 其中安装conda的教程&#xff1a; 一步步教你在 Windows 上轻松安装 Anaconda以及使…...

Spring框架核心技术深度解析:JDBC模板、模拟转账与事务管理

一、JDBC模板技术&#xff1a;简化数据库操作 在传统JDBC开发中&#xff0c;繁琐的资源管理和重复代码一直是开发者的痛点。Spring框架提供的 JDBC模板&#xff08;JdbcTemplate) 彻底改变了这一现状&#xff0c;它通过封装底层JDBC操作&#xff0c;让开发者仅需关注SQL逻辑&a…...

LCD电视LED背光全解析:直下式 vs 侧光式、全局调光 vs 局部调光与HDR体验

Abstract: This article explores the various types of LED backlighting used in televisions and monitors. It categorizes backlight systems based on structural design—direct-lit and edge-lit—as well as by dimming technology—global dimming and local dimmin…...

ET EntityRef EntityWeakRef 类分析

EntityRef EntityWeakRef 相同点 也是这两个的作用&#xff1a;这两个都是用来表示一个实体引用。一般来说使用一个对象&#xff0c;直接持有对象就可以&#xff0c;但是如果对象来自于对象池&#xff0c;这个时候直接持有对象不合适&#xff0c;对象可能已经被对象池回收&…...

Python----神经网络(基于DNN的风电功率预测)

一、基于DNN的风电功率预测 1.1、背景 在全球能源转型的浪潮中&#xff0c;风力发电因其清洁和可再生的特性而日益重要。然而&#xff0c;风力发电功率的波动性给电网的稳定运行和能源调度带来了挑战。准确预测风力发电机的功率输出&#xff0c;对于优化能源管理、提高电网可靠…...

Web前端入门:JavaScript 的应用领域

截至目前&#xff0c;您应该对前端的 HTML CSS 应该有了很清楚的认知&#xff0c;至少实现一个静态网页已经完全不在话下了。 当然&#xff0c;CSS 功能绝不止这些&#xff0c;一些不太常用的 CSS 相关知识&#xff0c;后续将通过案例进行分享。 那么咱们接下来看看 JavaScrip…...

实用工具:微软软件PowerToys(完全免费),实现多台电脑共享鼠标和键盘(支持window系统)

实用工具&#xff1a;微软软件 PowerToys 让多台电脑共享鼠标和键盘 在如今的数字化办公与生活场景中&#xff0c;我们常常会面临同时使用多台电脑的情况。例如&#xff0c;办公时可能一台电脑用于处理工作文档&#xff0c;另一台用于运行专业软件或查看资料&#xff1b;家庭环…...

精益数据分析(61/126):移情阶段评分体系构建与实战案例解析

精益数据分析&#xff08;61/126&#xff09;&#xff1a;移情阶段评分体系构建与实战案例解析 在创业的移情阶段&#xff0c;如何科学评估用户需求的真实性与紧迫性&#xff0c;是决定后续产品方向的关键。今天&#xff0c;我们结合《精益数据分析》中的评分框架&#xff0c;…...

面试题:介绍一下JAVA中的反射机制

什么是反射机制&#xff1f; Java反射机制是指在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够知道这个类的所有属性和方法&#xff1b;对于任意一个对象&#xff0c;都能够调用它的任意方法和属性。这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的…...

yarn任务筛选spark任务,判断内存/CPU使用超过限制任务

yarn任务筛选spark任务&#xff0c;判断内存/CPU使用超过限制任务 curl -s “http://it-cdh-node01:8088/ws/v1/cluster/apps?statesRUNNING” | jq ‘select(.apps.app[].applicationType “SPARK”) | .apps.app[].id’ | xargs -I {} curl -s “http://it-cdh-node01:808…...

ArcGIS Pro地块图斑顺序编号(手绘线顺序快速编号)-004

ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放_arcgis初学者使用视频-CSDN博客 4大遥感软件&#xff01;遥感影像解译&#xff01;ArcGISENVIErdaseCognition_遥感解译软件-CSDN博客 今天介绍一下在ArcGIS Pro地块图斑顺序编号&#xff08;手绘线顺序快速编号&am…...

红黑树解析

目录 一、引言 二、红黑树的概念与性质 2.1 红黑树的概念 2.2 红黑树的性质 三、红黑树的节点定义与结构 3.1 节点定义 四、红黑树的插入操作 4.1 插入步骤 4.2 插入代码实现 五、红黑树的验证 5.1 验证步骤 5.2 验证代码实现 六、红黑树迭代器的实现 6.1 迭代器的…...

在线文档管理系统 spring boot➕vue|源码+数据库+部署教程

&#x1f4cc; 一、项目简介 本系统采用Spring Boot Vue ElementUI技术栈&#xff0c;支持管理员和员工两类角色&#xff0c;涵盖文档上传、分类管理、公告发布、员工资料维护、部门岗位管理等核心功能。 系统目标是打造一个简洁高效的内部文档管理平台&#xff0c;便于员工…...

Python3 简易DNS服务器实现

使用Python3开发一个简单的DNS服务器&#xff0c;支持配置资源记录(RR)&#xff0c;并能通过dig命令进行查询。 让自己理解DNS原理 实现方案 我们将使用socketserver和dnslib库来构建这个DNS服务器。dnslib库能帮助我们处理DNS协议的复杂细节。 1. 安装依赖 首先确保安装了d…...

雾锁王国开服联机教程-专用服务器

一。阿里云服务器搭建 服务器地址&#xff1a;1分钟畅玩&#xff01;一键部署联机服务器 《雾锁王国&#xff08;Enshrouded&#xff09;》融合了生存、制作以及动作 RPG 战斗&#xff0c;游戏背景设定在了一个基于体素构筑的辽阔大陆。无论是攀登山脉还是跨越沙漠&#xff0…...

鸿蒙OSUniApp 开发的一键分享功能#三方框架 #Uniapp

使用 UniApp 开发的一键分享功能 在移动应用开发中&#xff0c;分享功能几乎是必不可少的一环。一个好的分享体验不仅能带来更多用户&#xff0c;还能提升产品的曝光度。本文将详细讲解如何在 UniApp 框架下实现一个简单高效的一键分享功能&#xff0c;适配多个平台。 各平台分…...

Hive PredicatePushDown 谓词下推规则的计算逻辑

1. PredicatePushDown 谓词下推 谓词下推的处理顺序是先处理子节点的操作&#xff0c;子节点都处理完&#xff0c;然后处理父节点。 select web_site_sk from (select web_site_sk,web_name from web_site where web_cityPleasant Hill ) t where web_name <> site_…...

2024东北四省ccpc

F题 解题思路 数论 有限小数的条件 p q \frac{p}{q} qp​ 在 k k k 进制下是有限小数&#xff0c;当且仅当 q q q 的所有质因数都是 p p p 或 k k k 的质因数。 即&#xff0c;若 q q q 的质因数分解为 q ∏ i p i a i q \prod_{i} p_i^{a_i} q∏i​piai​​&#x…...

【C语言】初阶数据结构相关习题(二)

&#x1f386;个人主页&#xff1a;夜晚中的人海 今日语录&#xff1a;知识是从刻苦劳动中得来的&#xff0c;任何成就都是刻苦劳动的结果。——宋庆龄 文章目录 &#x1f384;一、链表内指定区间翻转&#x1f389;二、从链表中删去总和值为零的节点&#x1f680;三、链表求和&…...

DeepSeek执行流程加速指南:跨框架转换与编译优化的核心策略全解析

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

解决 Conda 安装 PyTorch 1.1.0 报错:excluded by strict repo priority(附三种解决方案)

# &#x1f4a5;解决 Conda 安装 PyTorch 1.1.0 报错问题&#xff1a;excluded by strict repo priority在使用旧版本 PyTorch&#xff08;例如 1.1.0&#xff09;时&#xff0c;有些开发者会遇到以下 conda 安装报错&#xff1a;LibMambaUnsatisfiableError: package pytorch-…...

面试从微前端拓展到iframe是如何通信的

一、跨域通信 1、父页面发消息给 iframe const iframe document.getElementById(myIframe); iframe.contentWindow.postMessage(form parent, https://iframe-domain.com)// iframe 接收 window.addEventListener(message, (event) > {if (event.origin ! https://paren…...

PyTorch循环神经网络(Pytotch)

文章目录 循环神经网络&#xff08;RNN&#xff09;简单的循环神经网络长短期记忆网络&#xff08;LSTM&#xff09;门控循环单元&#xff08;GRU&#xff09; 循环神经网络&#xff08;RNN&#xff09; 循环神经网络&#xff08;RecurrentNeuralNetwork&#xff0c;RNN&#…...

django中用 InforSuite RDS 替代memcache

在 Django 项目中&#xff0c;InforSuite RDS&#xff08;关系型数据库服务&#xff09;无法直接替代 Memcached&#xff0c;因为两者的设计目标和功能定位完全不同&#xff1a; 特性MemcachedInforSuite RDS核心用途高性能内存缓存&#xff0c;临时存储键值对数据持久化关系型…...

Git 常用命令详解

Git 常用命令详解&#xff08;含详细示例&#xff09; 本文整理了 Git 日常使用中最常用的命令&#xff0c;适合初学者和日常查阅&#xff0c;如有错误&#xff0c;敬请指正&#xff0c;谢谢&#xff01; ☁️ Git 使用流程入门&#xff08;从 pull 和 push 开始&#xff09; …...

AI、机器学习、深度学习:一文厘清三者核心区别与联系

AI、机器学习、深度学习&#xff1a;一文厘清三者核心区别与联系 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;可以分享一下给大家。点击跳转到网站。 https://www.captainbed.cn/ccc 前言 在人工智能技术席卷全球的今天&…...

《数字藏品社交化破局:React Native与Flutter的创新实践指南》

NFT&#xff0c;这种非同质化代币&#xff0c;赋予了数字资产独一无二的身份标识&#xff0c;从数字艺术作品到限量版虚拟物品&#xff0c;每一件NFT数字藏品都承载着独特的价值与意义。当React Native和Flutter这两大跨平台开发框架遇上NFT数字藏品&#xff0c;一场技术与创意…...