ES(Elasticsearch) 基本概念(一)
Elasticsearch作为当前最流行的开源搜索和分析引擎,广泛应用于日志分析、全文搜索、业务智能等领域。Elasticsearch是一个基于 Apache Lucene 构建的分布式搜索和分析引擎、可扩展数据存储和矢量数据库。它针对生产级工作负载的速度和相关性进行了优化。使用 Elasticsearch 可以近乎实时地搜索、索引、存储和分析各种类型和大小的数据。Kibana是 Elasticsearch 的图形用户界面。它是一款强大的工具,可用于可视化和分析数据,以及管理和监控 Elastic Stack。本文将带你系统学习Elasticsearch的核心概念和基本用法。
一、Elasticsearch基础概念
在开始实际操作前,我们需要了解几个核心概念:
- 文档(Document)
- ES是面向文档的,文档是所有可搜索数据的最小单元
- 文档会被序列化成JSON格式存储
- 每个文档都有唯一ID,可自定义或自动生成
- 支持数组和嵌套结构
- 索引(Index)
- 相当于MySQL中的数据库
- 名称必须全部小写
- 包含mapping(定义字段类型)和setting(定义数据分布)
- 节点(Node)与分片(Shard)
- 节点:是 一个ES实例,本质是一个Java进程
- Master Eligible节点:参与选主,管理集群状态
- Data节点:存储数据
- Coordinating节点:接收客户端请求
- 节点的名称可以通过配置文件配置,或者在启动的时候使用-E node.name=ropledata指定,默认是随机分配的。建议咱们自己指定,因为节点名称对于管理目的很重要,咱们可以通过节点名称确定网络中的哪些服务器对应于ES集群中的哪些节点;
- 分片:将索引水平拆分为多个部分
- 主分片数在创建索引时指定,后续不能修改
- 副本分片提供高可用性,可动态调整数量
- 节点:是 一个ES实例,本质是一个Java进程
- 类型:就相当于MySql里的表,我们知道MySql里一个库下可以有很多表,最原始的时候ES也是这样,一个索引下可以有很多类型,但是从6.0版本开始,type已经被逐渐废弃,但是这时候一个索引仍然可以设置多个类型,一直到7.0版本开始,一个索引就只能创建一个类型了(_doc)。 Elasticsearch7 去掉 tpye 概念ES7.x 版本:URL 中的 type 参数为可选。 ES8.x 版本:不⽀持 URL 中的 type 参数
注意:虽然在实际存储上,文档存在于某个索引里,但是文档必须被赋予一个索引下的
二、什么是倒排索引?
倒排索引(Inverted Index)是搜索引擎最核心的数据结构,也是Elasticsearch实现高效全文搜索的基础。它与我们熟悉的传统"正排索引"形成鲜明对比:
- 正排索引(正向索引):文档文档(Document)
- ES是面向文档的,文档是所有可搜索数据的最小单元
- 文档会被序列化成JSON格式存储
- 每个文档都有唯一ID,可自定义或自动生成
- 支持数组和嵌套结构
- 索引(Index)
- 相当于MySQL中的数据库
- 名称必须全部小写
- 包含mapping(定义字段类型)和setting(定义数据分布)
- 节点(Node)与分片(Shard)
- 节点:一个ES实例,本质是一个Java进程
- Master Eligible节点:参与选主,管理集群状态
- Data节点:存储数据
- Coordinating节点:接收客户端请求
- 分片:将索引水平拆分为多个部分
- 主分片数在创建索引时指定,后续不能修改
- 副本分片提供高可用性,可动态调整数量
- 节点:一个ES实例,本质是一个Java进程
- → 包含的词
- 类似书籍的目录,通过章节找内容
- 如:文档1包含"大话"、"西游"
- 倒排索引(反向索引):词 → 出现的文档
- 类似书籍的索引页,通过关键词找章节
- 如:"西游" → 文档1、文档2、文档3...
三、倒排索引的构建过程
3.1 原始数据示例
以电影片名为例:
文档ID | 电影名称 |
1 | 大话西游 |
2 | 大话西游外传 |
3 | 解析大话西游 |
4 | 西游降魔外传 |
5 | 梦幻西游独家解析 |
3.2 分词处理
中文需要先进行分词(使用分词器将句子拆分为词语):
- "大话西游" → ["大话", "西游"]
- "大话西游外传" → ["大话", "西游", "外传"]
- "解析大话西游" → ["解析", "大话", "西游"]
- "西游降魔外传" → ["西游", "降魔", "外传"]
- "梦幻西游独家解析" → ["梦幻", "西游", "独家", "解析"]
3.3 构建倒排列表
对分词结果进行反向记录:
词项 | 文档ID列表(Posting List) | 其他信息(如词频、位置等) |
西游 | 1,2,3,4,5 | 在1中出现1次,在2中出现1次... |
大话 | 1,2,3 | 在1中出现1次,在2中出现1次... |
外传 | 2,4 | 在2中出现1次,在4中出现1次... |
解析 | 3,5 | 在3中出现1次,在5中出现1次... |
降魔 | 4 | 在4中出现1次 |
梦幻 | 5 | 在5中出现1次 |
独家 | 5 | 在5中出现1次 |
三、倒排索引的搜索过程
3.1 搜索示例:查询"独家大话西游"
- 查询分词:
- "独家大话西游" → ["独家", "大话", "西游"]
- 查找倒排列表:
- "独家" → 文档5
- "大话" → 文档1,2,3
- "西游" → 文档1,2,3,4,5
- 合并结果:
- 文档1:包含"大话"、"西游"
- 文档2:包含"大话"、"西游"
- 文档3:包含"大话"、"西游"
- 文档5:包含"独家"、"西游"
- 文档4:只包含"西游"
相关性评分(简化版):
评分公式:
得分 = 命中词数 / 文档总词数
-
-
文档1:命中2词("大话"、"西游"),总词数2 → 2/2=1.0
-
文档2:命中2词,总词数3 → 2/3≈0.67
-
文档3:命中2词,总词数3 → 2/3≈0.67
-
文档5:命中2词("独家"、"西游"),总词数4 → 2/4=0.5
-
文档4:命中1词("西游"),总词数3 → 1/3≈0.33
-
结果排序:
1. 大话西游 (1.0)
2. 大话西游外传 (0.67)
3. 解析大话西游 (0.67)
4. 梦幻西游独家解析 (0.5)
5. 西游降魔外传 (0.33)
基础操作
索引管理
// 创建索引
PUT /ropledata
{"settings": {"number_of_shards": "2","number_of_replicas": "3"}
}// 删除索引
DELETE /ropledata// 修改副本数
PUT ropledata/_settings
{"number_of_replicas": "2"
}
什么是映射?
映射(Mapping)是ElasticSearch中用于定义文档及其包含字段如何存储和索引的机制。它相当于关系型数据库中的表结构定义,决定了:
- 哪些字段应该被当作全文检索字段
- 哪些字段包含数字、日期或地理位置信息
- 日期值的格式
- 自定义规则来控制动态添加字段的映射
映射的核心作用
- 字段类型定义:指定每个字段的数据类型(如text、keyword、integer等)
- 索引控制:决定字段是否被索引(可搜索)
- 分析器配置:指定文本字段使用的分词器
- 格式设置:如日期字段的格式
- 多字段支持:一个字段可以有不同的索引方式
映射类型
1. 显式映射
单级属性映射
用户明确定义字段的映射规则:
PUT /my-index
{"mappings": {"properties": {"age": { "type": "integer" }, "email": { "type": "keyword" },"name": { "type": "text" }}}
}
多级属性映射
PUT /my-index
{"mappings": {"properties": {"age": { "type": "integer" },"email": { "type": "keyword" },"name": { "type": "text" },"address": {"type": "nested","properties": {"street": { "type": "text" },"city": { "type": "keyword" },"zipcode": { "type": "keyword" },"coordinates": {"type": "object","properties": {"lat": { "type": "float" },"lon": { "type": "float" }}}}},"skills": {"type": "nested","properties": {"name": { "type": "keyword" },"level": { "type": "integer" },"certifications": {"type": "nested","properties": {"name": { "type": "text" },"year": { "type": "short" }}}}},"employment_history": {"type": "nested","properties": {"company": { "type": "keyword" },"position": { "type": "text" },"duration_months": { "type": "integer" }}}}}
}
这个映射定义包含:
- 基本字段:age(integer), email(keyword), name(text)
- 嵌套地址对象:包含街道(text)、城市(keyword)、邮编(keyword)和坐标对象
- 嵌套技能数组:包含技能名(keyword)、等级(integer)和嵌套的认证数组
- 嵌套工作经历数组:包含公司(keyword)、职位(text)和持续时间(integer)
所有嵌套关系都使用 "type": "nested" 来确保数组中的对象被独立索引和查询。
2. 动态映射
当索引新文档时,ES会自动检测并添加新字段:
PUT /my-index/_doc/1
{"age": 25,"email": "user@example.com","name": "John Doe"
}
ES会自动推断:
age → long
email → keyword
name → text
常用字段类型
类型 | 说明 |
text | 全文检索字段,会被分词 |
keyword | 精确值字段,不分析,用于过滤、排序和聚合 |
long/integer | 长整型/整型数值 |
double/float | 双精度/单精度浮点数 |
date | 日期类型,可指定格式 |
boolean | 布尔值 |
object | JSON对象 |
nested | 嵌套对象,保持数组中对象的独立性 |
geo_point | 经纬度坐标 |
映射操作示例
查看映射
GET /my-index/_mapping
添加新字段映射
PUT /my-index/_mapping
{"properties": {"employee-id": {"type": "keyword","index": false}}
}
更新映射注意事项
重要:已存在字段的映射类型不能直接修改,必须:
- 创建新索引并定义新映射
- 使用_reindex API迁移数据
POST _reindex
{"source": { "index": "old-index" },"dest": { "index": "new-index" }
}
映射参数详解
常用参数
- index:是否索引该字段(true/false)
- analyzer:指定文本分析器
- search_analyzer:指定搜索时分析器
- format:日期格式(如"yyyy-MM-dd")
- copy_to:将字段值复制到目标字段
- fields:多字段特性,允许一个字段有多种索引方式
多字段示例
{"mappings": {"properties": {"city": {"type": "text","fields": {"raw": { "type": "keyword"}}}}}
}
这样city
可以用于全文搜索,city.raw
可用于精确匹配和聚合。
索引数据
- 预先定义映射:生产环境建议预先定义映射,避免动态映射的不确定性
- 合理使用keyword:不需要分词的字段应设为keyword类型
- 控制动态映射:可通过
dynamic
参数控制(true/false/strict) - 避免频繁修改:映射特别是字段类型不宜频繁变更
- 使用别名:便于重建索引时无缝切换映射是ElasticSearch高效工作的基础,合理的映射设计能显著提升搜索性能和结果的准确性。
一、数据插入操作
1. 不指定文档ID插入
Elasticsearch 会自动生成唯一ID
POST /ropledata/_doc/
{"id":1,"name":"且听_风吟","page":"https://ropledata.blog.csdn.net","say":"欢迎点赞,收藏,关注,一起学习"
}
2. 指定文档ID插入
适用于需要自定义ID的场景
POST /ropledata/_doc/101
{"id":1,"name":"且听_风吟","page":"https://ropledata.blog.csdn.net","say":"欢迎点赞,收藏,关注,一起学习"
}
二、数据删除操作
删除指定ID的文档:
DELETE /ropledata/_doc/101
三、数据更新操作
1. 全局更新(覆盖更新)
会完全替换原有文档内容
PUT /ropledata/_doc/101
{"id":1,"name":"且听_风吟","page":"https://ropledata.blog.csdn.net","say":"再次欢迎点赞,收藏,关注,一起学习"
}
2. 局部更新
只更新指定字段,性能优于全局更新
POST /ropledata/_update/101
{"doc": {"say":"奥力给"}
}
四、数据查询操作
1. 基础查询(默认返回10条)
GET /ropledata/_search
2. 带条件的全局查询
POST /ropledata/_search
{"query": {"match_all": {}},"sort": [{"id": {"order": "asc"}}]
}
五、索引重建操作
POST _reindex
{"source": { "index": "twitter" },"dest": { "index": "new_twitter" }
}
关键知识点总结
- 插入数据:
- 不指定ID时ES自动生成
- 指定ID适用于业务关联场景
- 更新机制:
- ES文档不可变,更新实质是新版本覆盖旧版本
- 局部更新(
_update
)比全局更新(PUT
)性能更好
- 查询特点:
- 默认返回10条结果
- 可通过
sort
参数控制排序 match_all
查询全部文档
- 版本兼容性:
- 本文示例适用于Elasticsearch 7.x版本
- 6.x及以下版本语法可能有差异
- 性能建议:
- 频繁更新的字段考虑单独索引
- 大文档更新优先使用局部更新
提示:在实际开发中,建议结合业务场景选择合适的操作方式,批量操作(Bulk API)能显著提高大批量数据处理的效率。
相关文章:
ES(Elasticsearch) 基本概念(一)
Elasticsearch作为当前最流行的开源搜索和分析引擎,广泛应用于日志分析、全文搜索、业务智能等领域。Elasticsearch是一个基于 Apache Lucene 构建的分布式搜索和分析引擎、可扩展数据存储和矢量数据库。它针对生产级工作负载的速度和相关性进行了优化。使用 Elasti…...
软考软件评测师—— 操作系统综合知识
目录 嵌入式操作系统 三态模型 操作系统概念 其他操作系统 绝对路径与相对路径 段页式管理 嵌入式操作系统 嵌入式操作系统(EOS)具有以下特点: 可裁剪性:支持开发性和可伸缩性的体系结构,能够根据需求进行功能…...
简单的re(零基础AI做题)
签到题一般简单,上来就是IDA(不管了,IDA!!!) 找主函数,这个题类似的做过好几个了 int __fastcall main(int argc, const char **argv, const char **envp) {__int64 v3; // rdx__i…...
一文掌握 LoRA 常见变体
上文主要是对于 LoRA 的原理和一些常见问题进行了讲解,该篇主要是讲解一些常见的 LoRA 变体。本笔记供个人学习总结使用。 QLoRA QLoRA 是在 LoRA 的基础上进行的改进,旨在进一步减少微调大语言模型时的内存占用,同时保持或仅轻微牺牲性能。主…...
QT高DPI支持
核心函数: qputenv("QT_SCREEN_SCALE_FACTORS", envVar); 如: qputenv("QT_SCREEN_SCALE_FACTORS", "1.2"); 这是我个人目前用的效果最好的,可惜数值不能小于1,小于1的时候,会出问题。 需要程序…...
数据仓库是什么?常见问题解答
在当今数字化时代,企业每天都会产生和收集大量数据。如何有效地存储、管理和分析这些数据,从而为企业决策提供支持,成为了一个关键问题。数据仓库作为一种专门设计的数据存储和管理系统,正是为解决这一问题而生。 数据仓库的定义…...
Java 02入门,封装继承多态
static关键字 1.介绍 静态的意思,可以修饰变量以及函数2.特点 1.被类的所有对象所共享 2.多了一种调用方式,可以通过类名进行调用 3.随着类的加载而加载,优先于对象存在*****3.作用 1.在一个对象里面的一个变量改为static,那么…...
企业级 Hosts 自动化管理实战:基于 HTTP 检测的高可用域名解析方案
摘要 本文针对企业级域名解析稳定性需求,提供一套从IP 检测到Hosts 更新的完整自动化解决方案。通过 HTTP 状态码检测、权威 DNS 解析、原子化文件操作等核心技术,结合多行业真实案例,详细阐述方案设计、脚本实现与生产部署,帮助…...
HTTP/HTTPS与SOCKS5协议在隧道代理中的兼容性设计解析
目录 引言 一、协议特性深度对比 1.1 协议工作模型差异 1.2 隧道代理适配难点 二、兼容性架构设计 2.1 双协议接入层设计 2.2 统一隧道内核 三、关键技术实现 3.1 协议转换引擎 3.1.1 HTTP→SOCKS5转换 3.1.2 SOCKS5→HTTP转换 3.2 连接管理策略 3.2.1 智能连接池 …...
AGI大模型(29):LangChain Model模型
1 LangChain支持的模型有三大类 大语言模型(LLM) ,也叫Text Model,这些模型将文本字符串作为输入,并返回文本字符串作为输出。聊天模型(Chat Model),主要代表Open AI的ChatGPT系列模型。这些模型通常由语言模型支持,但它们的API更加结构化。具体来说,这些模型将聊天消…...
鸿蒙开发进阶:深入解析ArkTS语言特性与开发范式
一、前言 在鸿蒙生态开发体系中,DevEco Studio作为核心开发工具为开发者提供了高效的集成环境。而在掌握工具使用之后,深入理解鸿蒙开发语言成为构建高质量应用的关键。本文将聚焦于鸿蒙系统的核心开发语言——ArkTS,全面解析其起源演进、声…...
数据库 1.0.1
表 数据库是一个非常大的仓库,里面的东西就是表,数据都在表里面 use yyy_company就意思是指定使用哪个仓库 show tables;就是show一下有几张表 因为主包的库是刚创建的,所以只有empty set(没有表) 创建表 创建的时候…...
Leetcode 01 java
两数之和 /* 给定一个整数数组 nums 和一个整数目标值 target, 请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任意顺序返回…...
30天自制操作系统day5(vram和显存)(GDT和IDT)(c语言结构体)(汇编-c)(ai辅助整理)
day5 harib02d c语言结构体的一些解释 struct BOOTINFO { char cyls, leds, vmode, reserve; short scrnx, scrny; char *vram; }; //最开始的struct命令只是把一串变量声明集中起来,统一叫做“struct BOOTINFO”。 //最初是1字节的变量cyls,接着是1字…...
Linux僵死进程以及文件操作
僵死进程 僵死进程产生的原因: 当子进程先于父进程结束,父进程没有获取子进程的退出码,此时子进程变成僵死进程。 如何处理僵死进程: (1)父进程先结束(子进程会变成孤儿进程,孤儿…...
19 C 语言位运算、赋值、条件、逗号运算符详解:涵盖运算符优先级与复杂表达式计算过程分析
1 位运算符 位运算符是对整数的二进制表示(补码形式)进行逐位操作的运算符。以下是主要的位运算符及其功能描述: 运算符描述操作数个数副作用&按位与2无|按位或2无^按位异或2无~按位取反1无<<按位左移2无>>按位右移2无 1.1…...
ubuntu下实时检测机械硬盘和固态硬盘温度
sudo apt update sudo apt install smartmontools然后,使用smartctl命令查看硬盘的详细信息,包括温度: sudo smartctl -a /dev/sda实时监控硬盘温度 虽然smartctl不能直接实时显示温度,你可以使用watch命令结合smartctl来定期查…...
游戏开发实战(三):Python复刻「崩坏星穹铁道」嗷呜嗷呜事务所---源码级解析该小游戏背后的算法与设计模式【纯原创】
文章目录 奇美拉类摸鱼仔,负能量,真老实,小坏蛋,压力怪治愈师小团体画饼王平凡王坏脾气抗压包请假狂请假王内卷王受气包跑路侠看乐子背锅侠抢功劳急先锋说怪话帮倒忙小夸夸工作狂职业经理严酷恶魔职场清流 开始工作吧小奇美拉没想…...
DeepSpeed简介及加速模型训练
DeepSpeed是由微软开发的开源深度学习优化框架,专注于大规模模型的高效训练与推理。其核心目标是通过系统级优化技术降低显存占用、提升计算效率,并支持千亿级参数的模型训练。 官网链接:deepspeed 训练代码下载:git代码 一、De…...
AIGC降重工具
使用 PyQt5 和 Python-docx 实现AIGC降重工具 在日常工作中,文档处理是一个常见的任务,尤其是对于需要批量处理文档内容的场景。今天,我将分享一个使用 PyQt5 和 Python-docx 库实现的简单文档处理工具。这个工具可以帮助用户选择文档文件&a…...
PYTHON训练营DAY31
项目拆分 src/data/load_data.py # -*- coding: utf-8 -*- import sys import io # 设置标准输出为 UTF-8 编码 sys.stdout io.TextIOWrapper(sys.stdout.buffer, encodingutf-8) import pandas as pddef load_data(file_path: str) -> pd.DataFrame:"""加…...
使用VGG-16模型来对海贼王中的角色进行图像分类
动漫角色识别是计算机视觉的典型应用场景,可用于周边商品分类、动画制作辅助等。 这个案例是一个经典的深度学习应用,用于图像分类任务,它使用了一个自定义的VGG-16模型来对《海贼王》中的七个角色进行分类,演示如何将经典CNN模型…...
AI-02a5a7.神经网络-与学习相关的技巧-正则化
过拟合 过拟合指的是只能拟合训练数据,但不能很好地拟合不包含在训练数据中的其他数据的状态。 在机器学习的问题中,过拟合是很常见的问题。 而机器学习的目标是提高泛化能力,即便是没有包含在训练数据里的未观测数据,也希望模…...
C# 常用密码加密与解密技术完全指南
目录 密码安全的核心概念 加密 vs 哈希:何时使用? 密钥管理的重要性 常见攻击手段(中间人攻击、彩虹表) 基础加密技术 对称加密(AES) 非对称加密(RSA) 哈希算法(SH…...
C++ QT 与 win32 窗口可以互操作
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);this->setWindowTitle("天下第一剑"); // HWND hwnd FindWindow(L"天下第一剑",L"天下第一剑"); // qDebug()<<…...
MySQL--day4--排序与分页
(以下内容全部来自上述课程) 1. 排序数据 1.1 排序基本使用 #1.排序 #如果没有使用排序操作,默认情况下查询返回的数据是按照添加数据的顺序显示的 SELECT * FROM employees;# 练习:按照salary从高到低的顺序显示员工信息 # 使用 ORDER …...
文件操作和IO—初识文件
认识文件 狭义上的文件(file),是针对硬盘这种持久化存储的IO设备,当我们想要进行数据保存的时候,往往不是保存成一个整体,而是独立成一个个的单位进行保存,这个独立的单位就被抽象成文件的概念…...
P2670 [NOIP 2015 普及组] 扫雷游戏
P2670 [NOIP 2015 普及组] 扫雷游戏 - 洛谷 #include<bits/stdc.h> using namespace std; int n,m; char a[105][105]; int main(){cin>>n>>m;for(int i1;i<n;i){for(int j1;j<m;j){cin>>a[i][j];}}for(int i1;i<n;i){for(int j1;j<m;j){…...
HomeAssistant开源的智能家居docker快速部署实践笔记(CentOS7)
1. SGCC_Electricity 应用介绍 SGCC_Electricity 是一个用于将国家电网(State Grid Corporation of China,简称 SGCC)的电费和用电量数据接入 Home Assistant 的自定义集成组件。通过该应用,用户可以实时追踪家庭用电量情况&…...
02 基本介绍及Pod基础排错
01 yaml文件里的字段错误 # 多打了一个i导致的报错 [rootmaster01 yaml]# cat 01-pod.yaml apiVersion: v1 kind: Pod metadata:name: likexy spec:contaiiners:- name: aaaimage: registry.cn-hangzhou.aliyuncs.com/yinzhengjie-k8s/apps:v1 [rootmaster01 yaml]# kubectl …...
9 定时任务与周期性调度
一、定时任务核心机制 1.1 基础调度配置 # celery.py from celery import Celery from celery.schedules import crontabapp Celery(proj) app.conf.beat_schedule {daily-report: {task: report.generate,schedule: crontab(hour3, minute30), # 每天3:30执行args: (),op…...
macOS 效率工具对比分析:Raycast、Alfred、uTools、Spotlight
macOS 效率工具对比分析:Raycast、Alfred、uTools、Spotlight 对比分析四款常见 macOS 高效工具,涵盖功能、插件生态、开发者支持、适用人群等维度,帮助你选择最适合自己的效率助手。 🔍 一、基本介绍 工具名简介SpotlightmacOS …...
接口测试速成指南:基础知识+工具使用全解析
你是否也有这样的经历:项目初期接口文档混乱,测试人员无从下手;开发说接口OK,测试却频繁遇坑?别怕,接口测试并没你想得那么难! “接口测试怎么做?用什么工具?”面试官一…...
SpringSecurity基础入门
一个身份认证、授权、防御常见攻击的框架。 spring security 中文网:Spring Security中文网 自定义配置 基于内存的用户认证 实现步骤如下: 在配置类中创建security的配置类: Configuration //声明当前类为配置类 EnableWebSecurity //…...
MySQL的安装及相关操作
目录 一. 数据库产生的背景 二. 数据库操作系统的组成 2.1 数据库(Database) 2.2 数据库管理系统(DBMS, Database Management System) 2.3 应用程序(Application) 三. 数据库的分类 3.1 关系数据库 3.2 非关系数据库 四. MySQL安装 4.1yum安装 1. Ubuntu 2. cent…...
【Code】Foundations 2017- Catalogue, List of Tables, List of Figures
Foundations 2017 目录 | Catalogue表格目录 | List of Tables图表目录 | List of Figures 目录 | Catalogue 英文原文中文翻译词汇学习(音标和解释)1. General1. 总则1.1 Scope1.1 范围1.2 Glossary1.2 术语表Glossary [ˈɡlɒsəri] 术语表ÿ…...
【TCGA-CRC】TCGA数据读取
写在前面 参考已有的帖子写的,但是临床数据和UCSC的不同。有知道的小伙伴欢迎指正。 rm(list ls()); gc() test1 data.table::fread("./00_Rawdata/GDCdata/TCGA-COAD/Transcriptome_Profiling/Gene_Expression_Quantification/00ae9ab8-6eaa-4085-af72-26…...
BYUCTF 2025
几周没会的比赛了,都是一题游。这周的BYU还不错,难度适中,只是时间有点短。周末时间不够。 Crypto Many Primes from Crypto.Util.number import bytes_to_long, getPrime import randomflag open("flag.txt").read().encode()…...
【Linux】初见,基础指令(续)
前言: 上文讲解了部分指令,本文我们来讲解剩下的指令【Linux】初见,基础指令-CSDN博客 cat指令 语法:cat 选项 文件 功能:打印文件中的内容 选项: -b 对非空行输出进行编号 -n 对输出的说有行进行编号…...
《MambaLLIE:基于隐式Retinex感知的低光照增强框架与全局-局部状态空间建模》学习笔记
Paper:2405.16105 Github:GitHub - wengjiangwei/MambaLLIE 目录 摘要 一、介绍 二、相关工作 2.1 低光图像增强 2.2 视觉空间状态模型 三、方法 3.1 预备知识 3.2 整体流程 3.3 全局优先-局部次之状态空间块 四、实验 4.1 基准数据集与实施细节 4.2 对比实验 4…...
计算机图形学Games101笔记--几何
第二部分:几何 几何介绍 光栅化解决如何渲染,几何研究模型如何存储在GPU的内存中。几何主要分为两种:隐式几何和显式几何。 **隐士几何:**用点之间的关系存储,如球的计算公式。更一般的可以用f(x,y,z)。我们可以令f…...
Web开发-Python应用Flask框架Jinja模版绑定路由参数传递页面解析SSTI注入
知识点: 1、安全开发-Python-Flask&Jinja2 2、安全开发-Python-路由传参&SSTI注入 演示案例-WEB开发-Python-Flask框架&Jinja2模版&路由传参&SSTI注入 0、Pycharm 配置Python解析 新建Flask项目 1、路由传参 app.route(/) app.route(/<id…...
聚焦开放智能,抢占技术高地 | 2025 高通边缘智能创新应用大赛第五场公开课来袭!
随着2025高通边缘智能创新应用大赛的推进,越来越多的参赛者关注如何借助高性能硬件突破技术瓶颈、打造差异化作品。 5月27日晚8点,大赛将开启初赛阶段的第五场专题公开课——由美格软件研究院院长李书杰领衔,深入解析高通平台的底层架构与参…...
NMOS和PMOS的区别
1 区分NMOS和PMOS:衬底箭头指向G级的是NMOS,衬底箭头背向G级的是PMOS 2 区分D和S级:针对NMOS,体二极管的正方向为S级;针对PMOS,体二极管正的方向为D级 3 区分电流方向:针对NMOS,电…...
Paillier加密方案的原理、实现与应用(vs)
一、实验目的 1、掌握NTL的基本配置和方法(以下是以visualstudio为例) 2、掌握Paillier加密方案的原理与实现 ①钥匙生成:首先,生成一把钥匙,包括钥匙和私钥匙。钥匙由两个大素数(p,q)的乘积n和一个整数g组成&#…...
Metal入门,使用Metal绘制3D图形
这次是使用Metal绘制一个立方体,并且添加旋转效果,绘制正方形的步骤很简单,我们绘制一个正方形就相当于绘制两个三角形,那么绘制一个正方体,我们很容易想到需要绘制他六个面,很显然,我们也需要把…...
Java 04 API
API 简介 一些已经写好的应用程序编程接口Object toString 默认返回的是当前对象在堆内存中的地址值信息:类的全类名十六进制哈希值返回该对象的返回值 class A{ } //返回的是地址哦 String sA.toString(); //细节:使用打印语句,打印对象…...
基于Gitee 的开发分支版本管理规范
一、版本管理规范概述 目的:规范代码分支管理和版本发布流程,提高团队协作效率,确保代码质量和版本可追溯性。适用范围:基于 Gitee 平台开发的所有项目。分支策略:采用 Git Flow 模型的变体,主要分支包括 …...
HOW - 结合 AI 进行 Tailwind 样式开发
文章目录 情况 1:使用 Tailwind CSS 与手写传统 CSS 的开发效率对比情况 2:AI Tailwind 自动生成 UI 的效率如何?总结 在 WHAT - Tailwind 样式方案(不写任何自定义样式) 中我们已经简单介绍过 Tailwind。今天主要认识…...
系统数据对接-从获取到处理的全流程
在后端架构的复杂生态中,子系统间或与外部系统的对接是常态,其核心要义在于实现数据的精准传输。本文聚焦于数据传输后的运算逻辑与异常处理机制,旨在为后端开发者提供深度见解。 一、数据获取机制:触发式与定时任务的权衡 &…...