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

ElasticSearch系列二(索引操作、文档操作、查询、深度分页、排序、DSL、检索原理)

文章目录索引操作创建索引查看索引删除索引更新索引获取索引的统计信息文档创建、修改、删除创建文档修改文档删除文档批量操作_bulk文档查询简单KV对查询ES高级查询Query DSL批量查询_mget和_msearch查询所有match_all分页from、to、排序 sort关键字查询/精确查询term范围查询range多id查询ids模糊查询fuzzy高亮查询highlight深度分页什么是深度分页为什么深度分页会造成问题如何解决深度分页问题Scroll API和Search_afterES检索原理索引操作在Elasticsearch中你可以使用以下的REST API来创建、查看和删除索引。创建索引创建索引你可以使用PUT请求来创建一个新的索引。例如以下的请求将创建一个名为my_index的新索引PUT/my_index你也可以在请求的主体中指定索引的设置和映射PUT/my_index{settings:{number_of_shards:1,number_of_replicas:1},mappings:{properties:{field1:{type:text}}}}查看索引查看索引你可以使用GET请求来查看一个或多个索引的信息。例如以下的请求将返回my_index索引的信息GET/my_indexGET /indexName获取名为indexName的索引的信息。settings这部分包含了索引的设置信息如分片数量、副本数量、索引创建时间等。mappings这部分包含了索引的映射信息即索引中每个字段的名称、类型、是否被索引等。aliases这部分包含了索引的别名信息。别名是索引的一个或多个替代名称可以用于方便地引用索引。{ indexName: { aliases: {}, mappings: { properties: { field1: { type: text }, field2: { type: integer } } }, settings: { index: { creation_date: 1630934097874, number_of_shards: 5, number_of_replicas: 1, uuid: c3NgT_XxT2aDfpn0bD4v2g, version: { created: 7080099 }, provided_name: indexName } } } }你也可以使用_catAPI来查看所有索引的列表GET/_cat/indices?v在Elasticsearch中_mapping是一个API用于获取或更新索引的mapping信息。Mapping是定义如何存储和索引文档及其字段的过程。你可以把它看作是Elasticsearch中的schema它定义了字段的类型如字符串、整数、日期等、是否被索引、是否存储原始值、分词器的设置等。你可以使用GET /index/_mapping命令来获取指定索引的mapping信息。例如GET/my_index/_mapping这个命令将返回my_index索引的mapping信息。你也可以使用PUT /index/_mapping命令来更新指定索引的mapping信息。但请注意一旦一个字段的mapping被定义它就不能被修改。如果你需要改变一个字段的mapping你必须创建一个新的索引然后将数据重新索引到新的索引中。删除索引删除索引你可以使用DELETE请求来删除一个索引。例如以下的请求将删除my_index索引DELETE/my_index更新索引获取索引的统计信息GET /_stats在Elasticsearch中_stats是一个API用于获取索引的统计信息。你可以使用GET /index/_stats命令来获取指定索引的统计信息。例如GET/my_index/_stats这个命令将返回my_index索引的统计信息包括文档数量、存储大小、索引操作的数量和时间等。你也可以使用GET /_stats命令来获取所有索引的统计信息GET/_stats此外你还可以在_stats命令后添加特定的指标如docs、store、indexing、search等来获取特定的统计信息。例如以下命令将返回所有索引的文档数量和存储大小GET/_stats/docs,store请注意你需要有查看统计信息的权限否则这个请求将返回一个错误。删除一个索引是不可逆的操作所以在执行这个操作之前请确保你不再需要这个索引中的任何数据。文档创建、修改、删除在Elasticsearch中你可以使用PUT或POST请求来创建文档使用POST请求刷新已有的文档进行修改或者使用DELETE请求来删除文档。创建文档创建文档你可以使用PUT或POST请求向指定索引添加新的文档。如果你想要指定文档ID应该使用PUT请求。如果你要Elasticsearch自动生成文档ID则应该使用POST请求。创建新的文档示例PUT /index_name/_doc/1 { field1: value1, field2: value2 }# 创建文档指定id # 如果id不存在创建新的文档否则先删除现有文档再创建新的文档版本会增加 # 使用PUT时必须有id PUT /es_db/_doc/1 { name: 张三, age: 25, sex: 1 } # 创建文档ES生成idPOST可以没有id # POST携带id时也是更新底层删除旧数据重新索引新文档 POST /es_db/_doc { name: 张三, age: 25, sex: 1 } # _create时如果id已存在会报错。 POST /es_db/_create/1 { name: 张三, age: 25, sex: 1 }注意POST和PUT都能起到创建和更新的作用PUT在对某一个具体的文档进行操作时需要指定id才能更新/创建而POST可以针对整个文档集合进行操作如果不写id就由ES生成一个唯一id创建新文档如果填了id那就针对这个id的文档进行创建/更新。修改文档修改文档为了修改一个已存在的文档你需要使用POST请求和_updateAPI。修改已存在的文档示例POST/index_name/_doc/1/_update{doc:{field1:new_value}}在这个示例中名为index_name的索引中ID为1的文档的field1字段被更新为new_value。删除文档删除文档你可以使用DELETE请求来删除一个文档。删除文档的示例DELETE/index_name/_doc/1在这个示例中名为index_name的索引中ID为1的文档被删除。批量操作_bulk批量对文档进行写操作是通过_bulk的API来实现的请求方式POST请求地址_bulk请求参数通过_bulk操作文档一般至少有两行参数或偶数行参数第一行参数是指定操作的类型create创建index索引、delete删除、update更新和操作的对象index、type、id第二行参数是操作的数据文档查询简单KV对查询# 通过URL搜索使用“q”指定查询字符串“query string syntax” KV键值对 # 条件查询例如要查询age28的_search?qage:28 GET /es_db/_doc/_search?qage:28 # 范围查询例如要查询年龄在25岁至26岁之间的_search?qage[25 TO 26]注意TO必须是大写 GET /es_db/_doc/_search?qage:[25 TO 26] # 查询年龄小于等于26岁的 GET /es_db/_doc/_search?qage:26 # 查询年龄大于等于26岁的 GET /es_db/_doc/_search?qage:26 # 分页查询fromXXsizeXX GET /es_db/_doc/_search?qage:[25 TO 26]from0size1 # 对查询结果只输出某些字段_source字段1,字段2 GET /es_db/_doc/_search?_sourcename,age # 对查询结果进行排序sort字段:desc/asc GET /es_db/_doc/_search?sortage:descES高级查询Query DSLES提供了一种强大的检索数据方式这种检索方式称之为Query DSLDomain Specified LanguageDSL是使用RESR API传递JSON格式的请求体RequestBody数据与ES进行交互这种方式的丰富语法让ES检索变得更加强大、简洁。语法GET /es_db/_doc/_search {JSON请求体数据} 简化版 GET /es_db/_search {JSON请求体数据}以下是一些DSL的主要功能全文搜索DSL可以用于执行全文搜索查询包括模糊匹配、短语匹配、多字段匹配等。结构化搜索DSL可以用于执行结构化搜索查询包括范围查询、日期查询、地理位置查询等。复合查询DSL可以用于执行复合查询可以将多个查询条件组合起来包括布尔查询、嵌套查询、函数得分查询等。数据聚合DSL可以用于执行数据聚合操作包括统计聚合、范围聚合、日期聚合、地理位置聚合等。排序和分页DSL可以用于执行排序和分页操作可以根据一个或多个字段进行排序也可以进行深度分页。高亮和建议DSL可以用于执行高亮和建议操作可以高亮显示搜索结果中的关键词也可以提供自动完成和拼写检查等建议。脚本计算DSL支持使用脚本进行复杂的计算可以在查询和聚合中使用脚本。实时获取DSL可以用于实时获取文档可以根据文档的ID直接获取文档的内容。以上只是DSL的一部分功能实际上DSL还提供了更多的查询类型和选项可以满足各种复杂的搜索需求。具体的使用方法可以参考Elasticsearch的官方文档。以下是一些Elasticsearch DSL的使用示例全文搜索使用match查询进行全文搜索。GET/my_index/_search{query:{match:{message:this is a test}}}结构化搜索使用range查询进行范围搜索。GET/my_index/_search{query:{range:{age:{gte:10,lte:20}}}}复合查询使用bool查询进行复合搜索。GET/my_index/_search{query:{bool:{must:[{match:{message:this is a test}},{range:{age:{gte:10,lte:20}}}]}}}数据聚合使用terms聚合进行分组统计。GET/my_index/_search{aggs:{group_by_state:{terms:{field:state.keyword}}}}排序和分页使用sort和size进行排序和分页。GET/my_index/_search{query:{match:{message:this is a test}},sort:[{date:desc}],size:10}高亮使用highlight进行高亮显示。GET/my_index/_search{query:{match:{message:this is a test}},highlight:{fields:{message:{}}}}以上只是Elasticsearch DSL的一部分使用示例具体的使用方法可以参考Elasticsearch的官方文档。批量查询_mget和_msearchES的批量查询可以使用mget和msearch两种其中mget是需要知道他的id可以指定不同的index也可以指定返回值source。msearch可以通过字段查询来进行一个批量的查找。_mget# 可以通过ID批量获取不同index和type的数据 GET _mget { docs: [ { _index: es_db, _id: 1 }, { _index: article, _id: 4 } ] } # 可以通过ID批量获取es_db的数据 GET /es_db/_mget { docs: [ { _id: 1 }, { _id: 4 } ] } # 简化后 GET /es_db/_mget { ids: [ 1, 2 ] }_msearch在_msearch中请求格式和_bulk类似查询一条数据需要两个对象第一个设置index和type第二个设置查询语句。查询语句和_search相同。如果只查询一个index可以在URL中带上index这样如果查询index可以直接用空对象表示。查询所有match_all使用match_all默认只返回10条数据。原因_search查询默认采用的是分页查询每页记录数size的默认值是10。如果想要显示更多数据指定size即可。GET /es_db/_search 等同于 GET /es_db/_search { query: { match_all: { } } } GET /es_db/_search { query: { match_all: { } }, size : 20, from : 5 }分页from、to、排序sort在Elasticsearch中sort、from和size参数可以一起使用来实现排序和分页。以下是一个示例它将返回field1字段值为value1的文档结果按照field2字段的值降序排序跳过前10个结果返回接下来的5个结果GET /index_name/_search { query: { match: { field1: value1 } }, sort: [ { field2: desc } ], from: 10, size: 5 }在这个示例中query对象定义了查询条件即field1字段值为value1的文档。sort数组定义了排序规则即按照field2字段的值降序排序。你可以在这个数组中指定多个排序字段。from参数定义了要跳过的结果数量即跳过前10个结果。这个参数的值默认为0。size参数定义了要返回的结果数量即返回接下来的5个结果。这个参数的值默认为10最大值可以在Elasticsearch的配置中设置但不能超过10000。这种方式可以用来实现分页例如你可以在用户请求第二页时将from参数设置为第一页的结果数量将size参数设置为每页的结果数量。关键字查询/精确查询term精确查询Term Query这种查询会对字段值进行精确匹配不进行分词。term用来使用关键字查询精确匹配还可以用来查询没有被进行分词的数据类型。Term是表达语意的最小单位搜索和利用统计语言模型进行自然语言处理都需要处理term。match在匹配时会对锁查询的关键词进行分词然后按粉刺匹配查找而term会直接对关键词进行查找。一般模糊查找的时候多用match而精确查找时可以使用term。ES中默认使用分词器为标准分词器Standard Analyzer标准分词器对于英文单词分词对于中文单字分词。在ES的Mapping type中keyword、date、integer、long、double、boolean、ip这些类型不分词只有text类型会分词。GET /index_name/_search { query: { term: { field1: exact value } } }在ES中term查询对输入不做分词。会将输入作为一个整体在倒排索引中查找准确的词项并且使用相关度算分公式为每个包含该词项的文档进行相关度算分。范围查询range范围查询Range Query这种查询会匹配在指定范围内的字段值。GET /index_name/_search { query: { range: { field1: { gte: start value, lte: end value } } } }多id查询idsGET /index_name/_search { query: { ids: { values: [1,2] } } }模糊查询fuzzy在实际搜索中我们有时候会打错字从而导致查询不到在ES中我们可以使用fuzziness属性来进行模糊查询从而达到搜索中有错别字的情形。fuzzy查询会用到两个很重要的参数fuzziness、prefix_length。fuzziness表示输入的关键字通过几次操作可以转变成ES库里面的对应的field字段。操作是指新增/删除/修改一个字符每次操作可以记做编辑距离为1.入中文集团到中威集团编辑距离就是1只需要修改一个字符。该参数默认值为0即不开启模糊查询。prefix_length表示限制输入关键字和ES对应查询field的内容开头的第n个字符必须完全匹配不允许错别字。如这里1则表示开头的字必须匹配不匹配则不返回。默认值也是0加大prefix_length的值可以提高效率和准确率。GET /index_name/_search { query: { fuzzy: { address : { value : 白云山, fuzziness: 1 } } } }注意fuzzy模糊查询最大模糊错误必须在0-2之间。布尔查询Bool Query这种查询可以组合多个查询条件。GET /index_name/_search { query: { bool: { must: [ { match: { field1: search text } }, { term: { field2: exact value } } ], filter: [ { range: { field3: { gte: start value, lte: end value } } } ] } } }在这些示例中“field1”、field2和field3是字段名你需要将它们替换为你的索引中的实际字段名。高亮查询highlighthighlight关键字可以让符合条件的文档中的关键字高亮。相关属性如下pre_tags前缀标签post_tags后缀标签tags_schema设置为styled可以使用内置高亮央视require_field_match多字段高亮需要设置为false深度分页什么是深度分页在Elasticsearch中通过from和size参数进行分页其中from表示起始结果的偏移size表示返回的结果数量当from size超出index.max_result_window限制时深度分页会导致性能问题因为搜索引擎需要执行大量的数据跳过skipping over data这在内存资源消耗上是昂贵的。注意参数index.max_result_window主要用来限制单次查询满足查询条件的结果窗口的大小窗口大小由from size组成。不能简单理解成查询返回给调用方的数据量主要是为了降低内存消耗。为什么深度分页会造成问题性能下降深度分页需要处理和排除大量数据这会增加查询延时。资源消耗为了找到深处的页面Elasticsearch必须处理很多不必要的数据消耗大量的CPU和内存资源。这是因为Elasticsearch在执行分页查询时需要跳过前面的所有结果。例如如果你请求第10000页每页10条数据Elasticsearch需要跳过前99990条结果。这需要大量的时间和资源尤其是在数据量非常大的情况下。如何解决深度分页问题对于深度分页问题除了修改index.max_result_window强烈不建议这样做之外有几个解决方案可以提高性能并减少资源消耗限制用户可访问的最大页面数在应用逻辑上限制用户可以请求的最大页数。例如不允许用户请求超过100页的数据。这种方法通过减少可访问的结果范围来避免深度分页的问题。滚动搜索Scroll APIScroll API可以在长时间运行的搜索任务中用来检索大量的Elasticsearch文档。这个API可以维持一个稳定的视图并持续返回结果直到不再需要更多数据。它的工作原理是创建一个快照然后在这个快照上迭代这样可以避免深度分页的性能问题。search_after参数提供了一种有效的方式来进行深度分页。这种方法不需要设定from参数而是直接跟在上一页的最后一个结果后。你需要提供上一页最后一个文档的排序键的值作为search_after的输入。Scroll API和Search_afterScroll APIScroll API主要用于处理大规模的数据导出场景它可以获取大量数据比如数百万或数十亿而不需要深度分页。以下是一个基本的使用示例# 初始化scroll查询命令中新增scroll1m说明采用游标查询保持游标查询窗口1分钟 GET /my_index/_search?scroll1m { size: 100, query: { match_all: {} } } # 继续获取数据scroll_id就是上一个请求中返回的scroll_id的值 GET /_search/scroll { scroll: 1m, scroll_id: DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ }在初始化scroll时你需要提供一个scroll参数这个参数定义了在数据变化时保持一致性的时间。然后你可以使用返回的scroll_id来获取下一批数据。Search_after参数Search_after参数可以让你从上一次搜索的最后一个结果开始获取数据这样可以避免深度分页的性能问题。以下是一个基本的使用示例# 获取第一批数据GET /my_index/_search{size:100,query:{match_all:{}},sort:[{date:asc},{tie_breaker_id:asc}]}# 获取下一批数据GET /my_index/_search{size:100,query:{match_all:{}},search_after:[2017-02-10T13:35:00,tie_breaker_id],sort:[{date:asc},{tie_breaker_id:asc}]}在使用search_after参数时你需要提供一个排序条件并且在获取下一批数据时使用上一次返回的最后一个结果的排序值。需要注意的是这两种方法都只适用于获取大量数据的场景如果你需要支持随机访问任意页面的分页查询可能需要考虑其他的解决方案比如使用更强大的硬件、优化查询条件、增加索引等。ES检索原理

相关文章:

ElasticSearch系列二(索引操作、文档操作、查询、深度分页、排序、DSL、检索原理)

文章目录索引操作创建索引查看索引删除索引更新索引获取索引的统计信息文档创建、修改、删除创建文档修改文档删除文档批量操作_bulk文档查询简单KV对查询ES高级查询(Query DSL)批量查询_mget和_msearch查询所有match_all分页(from、to&#…...

Phi-4-mini-reasoning数学能力展示:MATLAB符号计算与方程求解推理

Phi-4-mini-reasoning数学能力展示:MATLAB符号计算与方程求解推理 1. 数学推理新标杆 Phi-4-mini-reasoning在数学推理领域展现出令人惊艳的能力。这个轻量级模型不仅能理解复杂的数学表达式,还能像专业数学软件一样进行符号计算和方程求解。我们测试了…...

通俗易懂讲PIC单片机:从一窍不通到入门进步

单片机入门不难------谈PIC系列(转自矿石收音机论坛---崂山)十年前的老帖子,讲得通俗易懂,分享之。 请看图 这个8条腿的小螃蟹就是我们的第一顿饭,只要把它吃下去,以后的大餐就好办了。 第1、8条腿接电源 +5V 和 地线。头两条腿是螃蟹钳子,好吃的很。 现在剩下了 6…...

GTE语义搜索优化:提升企业文档检索准确率50%

GTE语义搜索优化:提升企业文档检索准确率50% 1. 这不是传统关键词搜索,而是真正“懂你意思”的检索 上周帮一家做工业设备的客户调试知识库系统时,他们技术主管指着屏幕叹了口气:“我们有三万份产品手册、维修指南和故障案例&am…...

C++零基础到工程实战(3.4.2):C++17 中 switch 初始化语句详解

目录 一、前言 二、switch 初始化语句是什么 三、GetPlay() 和 play.Status() 到底是什么意思 3.1 GetPlay() 是什么 3.2 play.Status() 是什么 四、完整示例解析: 4.1 示例: (1)代码 (2)变量名解…...

C++零基础到工程实战(3.4.1):switch高效条件判断分析

目录 一、本节学习内容概要图 二、前言 三、switch 的基本作用与适用场景 3.1 什么是 switch 语句 (1)一个变量只有若干个固定取值 (2)判断条件是整数或枚举 3.2 switch 和 if 的核心区别 (1)if 更…...

mysql如何将结果集存入新表_使用CREATE TABLE AS语句

CREATE TABLE AS 会自动推导字段类型但不可控,易导致VARCHAR过宽、NULL约束丢失、无索引主键等问题;复制结构数据应改用CREATE TABLE ... LIKE INSERT;需显式CAST、别名及COALESCE确保精度与空值处理。能直接用 CREATE TABLE AS,…...

openEuler 24.03 MariaDB Galera 集群部署指南(cz)

openEuler 24.03 MariaDB Galera 集群部署指南 文档说明 本文档适用于 openEuler 24.03 系统,包含 3 节点初始集群部署、新增节点 4(192.168.100.163)集群扩容完整流程。全程 root 操作,所有命令均添加详细注释和解释,…...

Lychee Rerank MM智能助手场景:支持图文提问的本地化多模态搜索引擎构建指南

Lychee Rerank MM智能助手场景:支持图文提问的本地化多模态搜索引擎构建指南 1. 项目概述与核心价值 Lychee Rerank MM是一个基于Qwen2.5-VL构建的高性能多模态重排序系统,由哈工大(深圳)自然语言处理团队开发。这个系统专门解决…...

3步搞定通义千问3-4B部署:Ollama镜像一键拉起实操手册

3步搞定通义千问3-4B部署:Ollama镜像一键拉起实操手册 想在自己的电脑上跑一个功能强大的AI助手,但又担心配置复杂、资源消耗大?今天,我们就来解决这个问题。通义千问最新推出的3-4B-Instruct-2507模型,号称“4B体量&…...

Kook Zimage真实幻想Turbo保姆级教程:5分钟部署你的专属AI画师

Kook Zimage真实幻想Turbo保姆级教程:5分钟部署你的专属AI画师 1. 项目简介与核心优势 今天我们要介绍的是一个能让普通人快速上手的AI绘画工具——Kook Zimage真实幻想Turbo。简单来说,这是一个专门为个人电脑设计的AI画师,特别擅长生成那…...

新手必看:用PWM和PID控制打造高效Buck电路(附Simulink仿真文件)

从零构建Buck电路:PWM与PID控制的实战指南 在电力电子领域,Buck电路作为最基础的DC-DC降压拓扑,其重要性不言而喻。但很多初学者在尝试实现闭环控制时,往往会被PWM调制和PID调节的复杂交互所困扰。本文将带你从零开始,…...

云容笔谈·东方红颜影像生成系统Python入门实战:快速搭建AI绘画环境

云容笔谈东方红颜影像生成系统Python入门实战:快速搭建AI绘画环境 你是不是也对AI绘画充满好奇,想亲手试试用代码生成一张独一无二的画作?今天,我们就来聊聊如何在星图GPU平台上,快速部署“云容笔谈东方红颜影像生成系…...

终极指南:使用over-golang构建分布式系统的etcd服务发现与gRPC集成方案

终极指南:使用over-golang构建分布式系统的etcd服务发现与gRPC集成方案 【免费下载链接】over-golang Golang相关:[审稿进度80%]Go语法、Go并发思想、Go与web开发、Go微服务设施等 项目地址: https://gitcode.com/gh_mirrors/ov/over-golang over…...

2026奇点大会语音合成赛道黑马突围战:3家初创公司如何用<1/10算力达成SOTA效果?技术栈拆解与模型蒸馏全流程图谱

第一章:2026奇点智能技术大会:大模型语音合成 2026奇点智能技术大会(https://ml-summit.org) 语音合成技术的范式跃迁 在2026奇点智能技术大会上,大模型驱动的语音合成(TTS)已突破传统拼接与参数化框架的边界&#x…...

深度学习环境配置踩坑无数?试试这个镜像,基础环境全搞定,只需关注代码

深度学习环境配置踩坑无数?试试这个镜像,基础环境全搞定,只需关注代码 1. 为什么选择这个深度学习训练镜像 深度学习环境配置一直是让开发者头疼的问题。从CUDA版本冲突到Python包依赖问题,再到各种框架的兼容性问题&#xff0c…...

从零开始了解GXUI字体系统:完整解析字体嵌入与字形渲染流程

从零开始了解GXUI字体系统:完整解析字体嵌入与字形渲染流程 【免费下载链接】gxui An experimental Go cross platform UI library. 项目地址: https://gitcode.com/gh_mirrors/gx/gxui GXUI是一个实验性的Go跨平台UI库,其字体系统是实现高质量文…...

Vue Router Composition API 完全指南:现代化路由开发的必备技能

Vue Router Composition API 完全指南:现代化路由开发的必备技能 【免费下载链接】router 🚦 The official router for Vue.js 项目地址: https://gitcode.com/gh_mirrors/router6/router Vue Router 作为 Vue.js 官方路由管理器,随着…...

10个实用技巧:r2 HTTP客户端打造企业级请求的完整指南

10个实用技巧:r2 HTTP客户端打造企业级请求的完整指南 【免费下载链接】r2 HTTP client. Spiritual successor to request. 项目地址: https://gitcode.com/gh_mirrors/r2/r2 r2作为request的精神继任者,是一款基于Fetch API构建的现代HTTP客户端…...

OFA-large视觉蕴含效果展示:SNLI-VE测试集惊艳匹配案例集

OFA-large视觉蕴含效果展示:SNLI-VE测试集惊艳匹配案例集 1. 引言:当图像遇见文字,AI如何理解它们的关系? 想象一下这样的场景:你看到一张图片,里面有两只鸟站在树枝上。如果有人问你:"图…...

终极指南:DuckDuckGo Android远程消息框架的7个核心机制实现无推送通知体验

终极指南:DuckDuckGo Android远程消息框架的7个核心机制实现无推送通知体验 【免费下载链接】Android DuckDuckGo Android App 项目地址: https://gitcode.com/gh_mirrors/android1/Android DuckDuckGo Android应用以其强大的隐私保护功能著称,其…...

【C++11】Cyber解构参数流的 无限增生 ——【可变参数模板 与 emplace系列接口】编译器如何面对乱码般的数据流进行“逻辑拆解”?可变参数模板为你量身定制逻辑!!

⚡ CYBER_PROFILE ⚡/// SYSTEM READY /// [ WARNING ]: DETECTING HIGH ENERGY &#x1f30a; &#x1f309; &#x1f30a; 心手合一 水到渠成 >>> ACCESS TERMINAL <<< [ &#x1f9be; 作者主页 ] [ &#x1f525; C初阶 ] [ &#x1f4be;C进…...

Janus-Pro-7B计算机视觉辅助:基于YOLOv8检测结果的智能报告生成

Janus-Pro-7B计算机视觉辅助&#xff1a;基于YOLOv8检测结果的智能报告生成 最近在做一个工业园区的智能巡检项目&#xff0c;客户提了个挺有意思的需求&#xff1a;他们希望摄像头不仅能“看见”设备异常&#xff0c;还能自动“说”出来。简单来说&#xff0c;就是系统识别到…...

tus-js-client错误处理与调试:构建稳定的文件上传系统

tus-js-client错误处理与调试&#xff1a;构建稳定的文件上传系统 【免费下载链接】tus-js-client A pure JavaScript client for the tus resumable upload protocol 项目地址: https://gitcode.com/gh_mirrors/tu/tus-js-client tus-js-client是一个纯JavaScript客户端…...

AI时代新型的项目管理应该是什么样的?众

AI训练存储选型的演进路线 第一阶段&#xff1a;单机直连时代 早期的深度学习数据集较小&#xff0c;模型训练通常在单台服务器或单张GPU卡上完成。此时直接将数据存储在训练机器的本地NVMe SSD/HDD上。 其优势在于IO延迟最低&#xff0c;吞吐量极高&#xff0c;也就是“数据离…...

GitHub 悄悄起飞的开源项目,想让 AI 接管你的电脑断

我为什么会发出这个疑问呢&#xff1f;是因为我研究Web开发中的一个问题时&#xff0c;HTTP请求体在 Filter&#xff08;过滤器&#xff09;处被读取了之后&#xff0c;在 Controller&#xff08;控制层&#xff09;就读不到值了&#xff0c;使用 RequestBody 的时候。 无论是字…...

BMV31M304A语音模块:I²C接口嵌入式语音播放方案

1. BMV31M304A语音播放模块深度技术解析BMV31M304A是由BEST MODULES CORP推出的专用IC接口语音播放模块&#xff0c;面向嵌入式系统设计&#xff0c;尤其适用于需要低成本、低功耗、即插即用语音提示功能的工业HMI、智能家电、安防设备及教育类开发板。该模块并非通用音频解码芯…...

终极KCC多设备兼容指南:Kindle、Kobo、ReMarkable全支持的漫画转换神器

终极KCC多设备兼容指南&#xff1a;Kindle、Kobo、ReMarkable全支持的漫画转换神器 【免费下载链接】kcc KCC (a.k.a. Kindle Comic Converter) is a comic and manga converter for ebook readers. 项目地址: https://gitcode.com/gh_mirrors/kc/kcc KCC&#xff08;Ki…...

简明教程:实现OpenCLaw轻量级应用服务器部署及Ollama大模型本地化蓉

智能体时代的代码范式转移与 C# 的战略转型 传统的 C# 开发模式&#xff0c;即所谓的“工程导向型”开发&#xff0c;要求开发者创建一个复杂的项目结构&#xff0c;包括项目文件&#xff08;.csproj&#xff09;、解决方案文件&#xff08;.sln&#xff09;、属性设置以及依赖…...

Graphormer开源镜像保姆级教程:3.7GB纯Transformer模型GPU快速部署

Graphormer开源镜像保姆级教程&#xff1a;3.7GB纯Transformer模型GPU快速部署 1. 为什么选择Graphormer&#xff1f; Graphormer是微软研究院开发的基于纯Transformer架构的图神经网络模型&#xff0c;专门用于分子属性预测任务。与传统的图神经网络(GNN)相比&#xff0c;它…...