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

Elasticsearch文件存储

分析Elasticsearch Index文件是如何存储的?
主要是想看一下FST文件是以什么粒度创建的?

首先通过kibana找一个索引的shard,此处咱们就以logstash-2023.05.30索引为例

查看下shard分布情况

GET /_cat/shards/logstash-2023.05.30?vindex               shard prirep state      docs   store ip             node
logstash-2023.05.30 3     p      STARTED 1520736 408.1mb 10.138.40.73  10.138.40.73-node1
logstash-2023.05.30 5     p      STARTED 1520888 409.9mb 10.138.40.74  10.138.40.74-node1
logstash-2023.05.30 6     p      STARTED 1518331 408.2mb 10.138.40.221 10.138.40.221-node1
logstash-2023.05.30 4     p      STARTED 1518186 409.3mb 10.138.204.194 10.138.204.194-node1
logstash-2023.05.30 1     p      STARTED 1519231 408.8mb 10.138.40.220 10.138.40.220-node1
logstash-2023.05.30 2     p      STARTED 1519970 409.9mb 10.138.204.195 10.138.204.195-node1
logstash-2023.05.30 0     p      STARTED 1520024 410.6mb 10.138.204.193 10.138.204.193-node1

这里以位于10.138.204.193上的shard 0为例分析。

要找到存储目录先要找到index的id

GET /logstash-2023.05.30/_settings{"logstash-2023.05.30" : {"settings" : {"index" : {"codec" : "best_compression","routing" : {"allocation" : {"include" : {"_tier_preference" : "data_content"}}},"refresh_interval" : "60s","number_of_shards" : "7","provided_name" : "logstash-2023.05.30","creation_date" : "1685376005206","number_of_replicas" : "0","uuid" : "FYWtFGTIS2CLB8yJhFXG9g",//这里就是索引的id"version" : {"created" : "7130499"}}}}
}

登录机器,找到存储索引文件的对应目录

/data3/10.138.204.193-node1/nodes/0/indices/FYWtFGTIS2CLB8yJhFXG9g

展开一下该目录下的文件

root@prd-paas-es-01:/data3/10.138.204.193-node1/nodes/0/indices/FYWtFGTIS2CLB8yJhFXG9g# tree -C -s
.
├── [       4096]  0
│   ├── [      20480]  index
│   │   ├── [        158]  _17f.fdm
│   │   ├── [   25578562]  _17f.fdt
│   │   ├── [       1939]  _17f.fdx
│   │   ├── [       4636]  _17f.fnm
│   │   ├── [    7981735]  _17f.kdd
│   │   ├── [      20898]  _17f.kdi
│   │   ├── [        716]  _17f.kdm
│   │   ├── [    7945983]  _17f_Lucene80_0.dvd
│   │   ├── [       3916]  _17f_Lucene80_0.dvm
│   │   ├── [    6230127]  _17f_Lucene84_0.doc
│   │   ├── [    3875001]  _17f_Lucene84_0.pos
│   │   ├── [    7448815]  _17f_Lucene84_0.tim
│   │   ├── [     108786]  _17f_Lucene84_0.tip
│   │   ├── [       1637]  _17f_Lucene84_0.tmd
│   │   ├── [        593]  _17f.si
│   │   ├── [        158]  _3uv.fdm
│   │   ├── [   33652243]  _3uv.fdt
│   │   ├── [       2555]  _3uv.fdx
│   │   ├── [       4636]  _3uv.fnm
│   │   ├── [   10520395]  _3uv.kdd
│   │   ├── [      27689]  _3uv.kdi
│   │   ├── [        716]  _3uv.kdm
│   │   ├── [   10573208]  _3uv_Lucene80_0.dvd
│   │   ├── [       3916]  _3uv_Lucene80_0.dvm
│   │   ├── [    8298061]  _3uv_Lucene84_0.doc
│   │   ├── [    5154427]  _3uv_Lucene84_0.pos
│   │   ├── [    9716222]  _3uv_Lucene84_0.tim
│   │   ├── [     142063]  _3uv_Lucene84_0.tip
│   │   ├── [       1620]  _3uv_Lucene84_0.tmd
│   │   ├── [        593]  _3uv.si
│   │   ├── [        158]  _5bg.fdm
│   │   ├── [   16433011]  _5bg.fdt
│   │   ├── [       1259]  _5bg.fdx
│   │   ├── [       4636]  _5bg.fnm
│   │   ├── [    5158094]  _5bg.kdd
│   │   ├── [      13396]  _5bg.kdi
│   │   ├── [        716]  _5bg.kdm
│   │   ├── [    5140762]  _5bg_Lucene80_0.dvd
│   │   ├── [       3916]  _5bg_Lucene80_0.dvm
│   │   ├── [    4005897]  _5bg_Lucene84_0.doc
│   │   ├── [    2583880]  _5bg_Lucene84_0.pos
│   │   ├── [    4873082]  _5bg_Lucene84_0.tim
│   │   ├── [      70979]  _5bg_Lucene84_0.tip
│   │   ├── [       1593]  _5bg_Lucene84_0.tmd
│   │   ├── [        593]  _5bg.si
│   │   ├── [        158]  _60h.fdm
│   │   ├── [   24664753]  _60h.fdt
│   │   ├── [       1886]  _60h.fdx
│   │   ├── [       4636]  _60h.fnm
│   │   ├── [    7640438]  _60h.kdd
│   │   ├── [      19996]  _60h.kdi
│   │   ├── [        716]  _60h.kdm
│   │   ├── [    7754954]  _60h_Lucene80_0.dvd
│   │   ├── [       3916]  _60h_Lucene80_0.dvm
│   │   ├── [    6147241]  _60h_Lucene84_0.doc
│   │   ├── [    3998559]  _60h_Lucene84_0.pos
│   │   ├── [    7254035]  _60h_Lucene84_0.tim
│   │   ├── [     105673]  _60h_Lucene84_0.tip
│   │   ├── [       1719]  _60h_Lucene84_0.tmd
│   │   ├── [        593]  _60h.si
│   │   ├── [        200]  _7jq.fdm
│   │   ├── [   63208093]  _7jq.fdt
│   │   ├── [       4692]  _7jq.fdx
│   │   ├── [       4636]  _7jq.fnm
│   │   ├── [   19306117]  _7jq.kdd
│   │   ├── [      51562]  _7jq.kdi
│   │   ├── [        716]  _7jq.kdm
│   │   ├── [   20228561]  _7jq_Lucene80_0.dvd
│   │   ├── [       3916]  _7jq_Lucene80_0.dvm
│   │   ├── [   15606568]  _7jq_Lucene84_0.doc
│   │   ├── [    9581341]  _7jq_Lucene84_0.pos
│   │   ├── [   17383473]  _7jq_Lucene84_0.tim
│   │   ├── [     272615]  _7jq_Lucene84_0.tip
│   │   ├── [       1592]  _7jq_Lucene84_0.tmd
│   │   ├── [        593]  _7jq.si
│   │   ├── [        437]  _82w.cfe
│   │   ├── [    4489379]  _82w.cfs
│   │   ├── [        408]  _82w.si
│   │   ├── [        437]  _87w.cfe
│   │   ├── [    4932636]  _87w.cfs
│   │   ├── [        408]  _87w.si
│   │   ├── [        437]  _8ao.cfe
│   │   ├── [   13905317]  _8ao.cfs
│   │   ├── [        408]  _8ao.si
│   │   ├── [        437]  _8ls.cfe
│   │   ├── [   20181047]  _8ls.cfs
│   │   ├── [        408]  _8ls.si
│   │   ├── [        437]  _8nq.cfe
│   │   ├── [    1234712]  _8nq.cfs
│   │   ├── [        408]  _8nq.si
│   │   ├── [        437]  _8oa.cfe
│   │   ├── [     872798]  _8oa.cfs
│   │   ├── [        408]  _8oa.si
│   │   ├── [        437]  _8pp.cfe
│   │   ├── [    1593677]  _8pp.cfs
│   │   ├── [        408]  _8pp.si
│   │   ├── [        437]  _8r5.cfe
│   │   ├── [     914008]  _8r5.cfs
│   │   ├── [        408]  _8r5.si
│   │   ├── [        437]  _8rf.cfe
│   │   ├── [     940473]  _8rf.cfs
│   │   ├── [        408]  _8rf.si
│   │   ├── [        437]  _8rz.cfe
│   │   ├── [    1315312]  _8rz.cfs
│   │   ├── [        408]  _8rz.si
│   │   ├── [        437]  _8s9.cfe
│   │   ├── [    1121692]  _8s9.cfs
│   │   ├── [        408]  _8s9.si
│   │   ├── [        437]  _8sk.cfe
│   │   ├── [     243476]  _8sk.cfs
│   │   ├── [        408]  _8sk.si
│   │   ├── [       1678]  segments_6
│   │   └── [          0]  write.lock
│   ├── [       4096]  _state
│   │   ├── [        186]  retention-leases-2865.st
│   │   └── [        125]  state-0.st
│   └── [       4096]  translog
│       ├── [         55]  translog-29.tlog
│       └── [         88]  translog.ckp
└── [       4096]  _state└── [       1230]  state-2.st5 directories, 118 files

有了文件信息,我们再来看下,segment信息

GET /logstash-2023.05.30/_segments// 这里为了直观 只展示shard 0对应的segment
{"_shards": {"total": 7,"successful": 7,"failed": 0},"indices": {"logstash-2023.05.30": {"shards": {"0": [{"routing": {"state": "STARTED","primary": true,"node": "4hEWcF8hRFWTEkQxlKQmqg"},"num_committed_segments": 17,"num_search_segments": 17,"segments": {"_17f": {"generation": 1563,"num_docs": 210331,"deleted_docs": 0,"size_in_bytes": 59203502,"memory_in_bytes": 5140,"committed": true,"search": true,"version": "8.8.2","compound": false,"attributes": {"Lucene87StoredFieldsFormat.mode": "BEST_COMPRESSION"}},"_3uv": {"generation": 4999,"num_docs": 278411,"deleted_docs": 0,"size_in_bytes": 78098502,"memory_in_bytes": 5140,"committed": true,"search": true,"version": "8.8.2","compound": false,"attributes": {"Lucene87StoredFieldsFormat.mode": "BEST_COMPRESSION"}},"_5bg": {"generation": 6892,"num_docs": 132645,"deleted_docs": 0,"size_in_bytes": 38291972,"memory_in_bytes": 5140,"committed": true,"search": true,"version": "8.8.2","compound": false,"attributes": {"Lucene87StoredFieldsFormat.mode": "BEST_COMPRESSION"}},"_60h": {"generation": 7793,"num_docs": 199809,"deleted_docs": 0,"size_in_bytes": 57599273,"memory_in_bytes": 5140,"committed": true,"search": true,"version": "8.8.2","compound": false,"attributes": {"Lucene87StoredFieldsFormat.mode": "BEST_COMPRESSION"}},"_7jq": {"generation": 9782,"num_docs": 520420,"deleted_docs": 0,"size_in_bytes": 145654675,"memory_in_bytes": 5204,"committed": true,"search": true,"version": "8.8.2","compound": false,"attributes": {"Lucene87StoredFieldsFormat.mode": "BEST_COMPRESSION"}},"_82w": {"generation": 10472,"num_docs": 15416,"deleted_docs": 0,"size_in_bytes": 4490224,"memory_in_bytes": 5140,"committed": true,"search": true,"version": "8.8.2","compound": true,"attributes": {"Lucene87StoredFieldsFormat.mode": "BEST_COMPRESSION"}},"_87w": {"generation": 10652,"num_docs": 16837,"deleted_docs": 0,"size_in_bytes": 4933481,"memory_in_bytes": 5140,"committed": true,"search": true,"version": "8.8.2","compound": true,"attributes": {"Lucene87StoredFieldsFormat.mode": "BEST_COMPRESSION"}},"_8ao": {"generation": 10752,"num_docs": 48855,"deleted_docs": 0,"size_in_bytes": 13906162,"memory_in_bytes": 5140,"committed": true,"search": true,"version": "8.8.2","compound": true,"attributes": {"Lucene87StoredFieldsFormat.mode": "BEST_COMPRESSION"}},"_8ls": {"generation": 11152,"num_docs": 70903,"deleted_docs": 0,"size_in_bytes": 20181892,"memory_in_bytes": 5140,"committed": true,"search": true,"version": "8.8.2","compound": true,"attributes": {"Lucene87StoredFieldsFormat.mode": "BEST_COMPRESSION"}},"_8nq": {"generation": 11222,"num_docs": 3954,"deleted_docs": 0,"size_in_bytes": 1235557,"memory_in_bytes": 6924,"committed": true,"search": true,"version": "8.8.2","compound": true,"attributes": {"Lucene87StoredFieldsFormat.mode": "BEST_COMPRESSION"}},"_8oa": {"generation": 11242,"num_docs": 2785,"deleted_docs": 0,"size_in_bytes": 873643,"memory_in_bytes": 6820,"committed": true,"search": true,"version": "8.8.2","compound": true,"attributes": {"Lucene87StoredFieldsFormat.mode": "BEST_COMPRESSION"}},"_8pp": {"generation": 11293,"num_docs": 5194,"deleted_docs": 0,"size_in_bytes": 1594522,"memory_in_bytes": 7060,"committed": true,"search": true,"version": "8.8.2","compound": true,"attributes": {"Lucene87StoredFieldsFormat.mode": "BEST_COMPRESSION"}},"_8r5": {"generation": 11345,"num_docs": 2936,"deleted_docs": 0,"size_in_bytes": 914853,"memory_in_bytes": 6748,"committed": true,"search": true,"version": "8.8.2","compound": true,"attributes": {"Lucene87StoredFieldsFormat.mode": "BEST_COMPRESSION"}},"_8rf": {"generation": 11355,"num_docs": 2920,"deleted_docs": 0,"size_in_bytes": 941318,"memory_in_bytes": 6836,"committed": true,"search": true,"version": "8.8.2","compound": true,"attributes": {"Lucene87StoredFieldsFormat.mode": "BEST_COMPRESSION"}},"_8rz": {"generation": 11375,"num_docs": 4304,"deleted_docs": 0,"size_in_bytes": 1316157,"memory_in_bytes": 6820,"committed": true,"search": true,"version": "8.8.2","compound": true,"attributes": {"Lucene87StoredFieldsFormat.mode": "BEST_COMPRESSION"}},"_8s9": {"generation": 11385,"num_docs": 3647,"deleted_docs": 0,"size_in_bytes": 1122537,"memory_in_bytes": 6892,"committed": true,"search": true,"version": "8.8.2","compound": true,"attributes": {"Lucene87StoredFieldsFormat.mode": "BEST_COMPRESSION"}},"_8sk": {"generation": 11396,"num_docs": 657,"deleted_docs": 0,"size_in_bytes": 244321,"memory_in_bytes": 7620,"committed": true,"search": true,"version": "8.8.2","compound": true,"attributes": {"Lucene87StoredFieldsFormat.mode": "BEST_COMPRESSION"}}}}]}}}
}

对比segment与shard目录中文件可以看出,两者是一一对应的。

看下es及对应lucene的版本

GET /{"name" : "10.138.204.193-node1","cluster_name" : "elasticsearch","cluster_uuid" : "XWDyVuo6TgK4yUp2XWD3lw","version" : {"number" : "7.13.4","build_flavor" : "default","build_type" : "docker","build_hash" : "c5f60e894ca0c61cdbae4f5a686d9f08bcefc942","build_date" : "2021-07-14T18:33:36.673943207Z","build_snapshot" : false,"lucene_version" : "8.8.2","minimum_wire_compatibility_version" : "6.8.0","minimum_index_compatibility_version" : "6.0.0-beta1"},"tagline" : "You Know, for Search"
}

那么shard目录中各种后缀的文件具体是什么含义呢?下面来看下

在这里插入图片描述

截图出处:
https://lucene.apache.org/core/8_8_2/core/org/apache/lucene/codecs/lucene87/package-summary.html#package.description

从表格中可以看出与FST相关的文件后缀有:tip、tim,从这里就可以看出FST文件是以segment维度来创建的。

相关文章:

Elasticsearch文件存储

分析Elasticsearch Index文件是如何存储的? 主要是想看一下FST文件是以什么粒度创建的? 首先通过kibana找一个索引的shard,此处咱们就以logstash-2023.05.30索引为例 查看下shard分布情况 GET /_cat/shards/logstash-2023.05.30?vindex …...

chatgpt赋能python:如何安装pyecharts

如何安装pyecharts Pyecharts是一个基于echarts的数据可视化工具,它是Python语言的一个库,可以通过Python编程语言进行数据可视化,并且能通过交互式的方式展示出来。 在本文中,我们将介绍如何安装pyecharts,如果您是…...

cmake 添加一个库

目录 项目格式 cmake基本语法 设置编译器 添加库 链接库 添加库的头文件 cmake打印字符串 库的cmake文件 cmake生辰库 mian函数中使用 让库成为可选的 cmake基本语法 设置option变量 cmake设置条件链接库 链接库 添加头文件 修改cmake配置文件 修改引用的源码…...

代码随想录二刷 226 翻转二叉树 102 二叉树的层序遍历 101 对称二叉树

226 翻转二叉树 代码如下 func invertTree(root *TreeNode) *TreeNode { if root nil { 采用前序遍历,如果当前节点为空,就返回空 return nil } root.Left,root.Right root.Right, root.Left 交换该节点的…...

【深入浅出C#】章节 3: 控制流和循环:条件语句

条件语句是编程中一种常用的控制结构,用于根据给定的条件来执行不同的代码块。它基于条件的真假来决定程序的执行路径,使程序能够根据不同的情况采取不同的行动。条件语句的作用在于根据特定的条件来控制程序的行为,使程序能够根据不同的情况…...

Java框架学习--Spring

1.Spring概念【托管很多对象的框架】 一个包含了众多工具方法的IoC容器。 1.1 什么是容器? 容器是用来容纳各种物品的(基本)装置。--来自百度百科 之前常见的容器有: List/Map-》数据存储容器 Tomcat-》Web容器 1.2什么是IoC? IoCInve…...

【爬虫】Xpath和CSS信息提取的方法异同点

类似点: Xpath与css都有web页面定位元素的功能Xpath与css结构类似 区别: 1. Xpath比较强大,而css选择器在性能上更优,运行速度更快,语法更简洁 CSS再chrome,火狐查找速度快,效率高&#xff0…...

数字IC前端学习笔记:FIFO的Verilog实现(二)

相关文章 数字IC前端学习笔记:LSFR(线性反馈移位寄存器) 数字IC前端学习笔记:跨时钟域信号同步 数字IC前端学习笔记:信号同步和边沿检测 数字IC前端学习笔记:锁存器Latch的综合 数字IC前端学习笔记&am…...

2.2 搭建Spark开发环境

一、Spark开发环境准备工作 由于Spark仅仅是一种计算框架,不负责数据的存储和管理,因此,通常都会将Spark和Hadoop进行统一部署,由Hadoop中的HDFS、HBase等组件负责数据的存储管理,Spark负责数据计算。 安装Spark集群前…...

webpack指定输出资源的路径和名称

如图,在前面的章节我们打包后的文件默认都输出到了dist目录下,无论是图片、还是js都在同一级别目录,这里目前处理的资源比较少,如果资源一多,所有的资源都在同一级目录,看起来很费劲。 那么这节就介绍一下…...

Spring事务四

spring 事务的隔离级别 当多个事务同时访问数据库中的同一数据时,可能会出现数据不一致的情况,为了避免这种情况发生,就需要使用事务隔离机制。Spring框架中定义了5种事务隔离级别,分别为: DEFAULT(默认隔…...

项目管理专业人员能力评价等级证书(CSPM)的级别介绍

2021年10月,中共中央、国务院发布的《国家标准化发展纲要》明确提出构建多层次从业人员培养培训体系,开展专业人才培养培训和国家质量基础设施综合教育。建立健全人才的职业能力评价和激励机制。由中国标准化协会(CAS)组织开展的项…...

设计模式-创建型模式(单例、工厂、建造、原型)

Concept-概念前置 设计模式:软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。 面向对象三大特性:封装、继承、多态。 面向对象设计的SOLID原则: (1)开放封闭原则&#…...

用饭店来形象比喻线程池的工作原理

一、线程池解决的问题? 使用线程池主要解决在程序中频繁创建和销毁线程导致的资源浪费,线程池可以维护一定量的线程来执行所需要的任务,维护的线程也可以重复使用。 二、用形象的饭店来解释工作原理 线程池就相当于一家饭店, 任…...

GO学习笔记之表达式

GO学习笔记之表达式 保留字运算符优先级二元运算符位运算符自增指针 保留字 Go语言仅25个保留关键字(keyword),这是最常见的宣传语,虽不是主流语言中最少的,但也确实体现了Go语法规则的简洁性。保留关键字不能用作常量…...

005Mybatis返回值(ResultMap 一对多,多对多)

属性 id 应该总是指定一个或多个可以唯一标识结果的属性。 虽然,即使不指定这个属性,MyBatis 仍然可以工作,但是会产生严重的性能问题。 只需要指定可以唯一标识结果的最少属性。显然,你可以选择主键(复合主键也可以…...

把玩数据在内存中的存储

前言:时光如梭💦,今天到了C语言进阶啦😎,基础知识我们已经有了初步认识, 是时候该拔高拔高自己了😼。 目标:掌握浮点数在内存的存储,整形在内存的存储。 鸡汤&#xff1a…...

Nginx运行原理与基本配置文件讲解

文章目录 Nginx基本运行原理Nginx的基本配置文件serverlocationroot 与 alias 的区别server 和 location 中的 rootnginx欢迎页 本文参考文章Nginx相关文章 Nginx基本运行原理 Nginx的进程是使用经典的「Master-Worker」模型,Nginx在启动后,会有一个master进程和多个…...

openGauss5 企业版之SQL语法和数据结构

文章目录 1.openGauss SQL 语法2. 数据类型2.1数值类型2.2 布尔类型2.3 字符类型2.4 二进制类型2.5日期/时间类型2.6 几何类型2.7 网络地址类型2.8 位串类型2.9 文本搜索类型2.10 UUID数据类型2.11 JSON/JSONB类型2.11 HLL数据类型2.12 范围类型2.13 索引2.14 对象标识符类型2.…...

TClientDataSet 模拟 EXCEL表

日常处理数据时,经常需要,从EXCEL表格中,批量导入数据,通过 XLSReadWriteII编程,会很快导入。 但是,客户提供的EXCEL表的字段,数据格式,字段的排序,有很大的区别。因此&a…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节,供应链协同管理在供应链上下游企业之间建立紧密的合作关系,通过信息共享、资源整合、业务协同等方式,实现供应链的全面管理和优化,提高供应链的效率和透明度,降低供应链的成…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战

在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...