MyScaleDB 如何使用 Tantivy 增强文本搜索功能

低门槛、高性价比:MyScaleDB 与 Dify 联手打造全新 AI 应用开发组合 Dify 的最新版本中已经集成了 SQL 向量数据库 MyScaleDB,并支持向量检索、全文检索和混合检索。现在,开发者不仅能利用 MyScaleDB 强大的 SQL 能力与向量搜索功能,还能通过 Dify 的直观界面轻松编排和调试 prompt,快速创建智能客服、文本生成等多种 AI 应用。 阅读详情

全球数据的爆炸性增长预计到2025年将达到181 zettabytes,其中80%为非结构化数据,这对于无法有效处理非结构化文本数据的传统数据库构成了挑战。全文搜索通过实现对非结构化文本数据的直观高效访问,使用户能够基于主题或关键思想进行搜索。

MyScaleDB是ClickHouse的一个开源分支,专为向量搜索进行了优化,并通过集成全文搜索引擎库Tantivy增强了其文本搜索功能。

这次升级对于那些使用ClickHouse进行日志记录的用户尤为有益,他们通常将其作为Elasticsearch或Loki的替代品。对于利用MyScaleDB和大型语言模型(LLM)进行检索增强生成(RAG)的用户来说,这也有助于结合向量和文本搜索以提高准确性。

在本文中,我们将探讨集成过程的技术细节以及它如何提升MyScaleDB的性能。

ClickHouse本地文本搜索的局限性

ClickHouse提供了基本的文本搜索功能,如hasToken、startsWith和multiSearchAny,适用于简单的词项查询场景。然而,对于更复杂的需求,如短语查询、模糊文本匹配和BM25相关性排序,这些功能就显得不够了。因此,在MyScaleDB中,我们引入了Tantivy作为全文索引的底层实现,为MyScaleDB赋予了全文搜索功能。Tantivy的全文索引支持模糊文本查询、BM25相关性排序,并加速了现有的hasToken和multiSearchAny词项匹配功能。

为什么选择Tantivy

Tantivy是一个用Rust编写的开源全文搜索引擎库,专为处理大量文本数据而设计,具有出色的速度和效率。

理解Tantivy的核心原理

Tantivy

  • 构建索引:Tantivy对输入文本进行分词,将其分割为独立的词项。然后,它创建一个倒排索引(倒排列表)并将其写入索引文件(段)。与此同时,Tantivy的后台线程利用合并策略合并和更新这些段索引文件。

  • 执行文本搜索:当用户发起文本搜索查询时,Tantivy解析查询语句,提取词项,并在每个段上根据查询条件和BM25相关性算法对文档进行排序和评分。最后,根据相关性得分合并这些段的查询结果,并返回给用户。

Tantivy的关键特性

  • BM25相关性评分:Elasticsearch、Lucene和Solr都使用BM25作为默认的相关性排序算法。BM25评分评估文本搜索的准确性和相关性,提升用户的搜索体验。
  • 可配置的分词器:支持各种语言的分词器,满足用户多样化的分词需求。
  • 自然语言查询:用户可以使用AND、OR、IN等关键词灵活组合文本查询,减少SQL语句编写的复杂性。

更多功能,请参考Tantivy文档。

与MyScaleDB的无缝集成

MyScaleDB是用C++编写的,基于ClickHouse开发的强大搜索引擎,适用于AI原生应用。为了丰富MyScaleDB的全文搜索功能,我们需要一个可以直接嵌入到MyScaleDB中的库。

Tantivy是一个受Apache Lucene启发的全文搜索库。与Elasticsearch、Apache Solr和其他类似引擎不同,Tantivy可以集成到各种数据库中,如MyScaleDB。Tantivy使用Rust编程语言编写,可以使用Corrosion轻松地与C++程序集成。

集成过程

为Tantivy构建C++包装器

Tantivy 搜索
我们无法直接在MyScaleDB中使用原始的Tantivy库。为了解决跨语言开发(C++和Rust)的挑战,我们开发了tantivy-search,这是一个用于Tantivy的C++包装器。它为MyScaleDB提供了一组FFI接口,可以直接管理索引的创建、销毁、加载,并能够灵活处理各种场景下的文本搜索需求。

将Tantivy实现为ClickHouse的跳跃索引

ClickHouse的跳跃索引主要用于加速带有WHERE子句的查询。我们实现了一种名为FTS(全文搜索)的新跳跃索引类型,以Tantivy作为底层实现。因此,对于ClickHouse中具有FTS索引的每个数据部分,我们为其构建一个Tantivy索引。如前所述,Tantivy为每个索引生成了多个段文件。为了减少需要存储在数据部分中的文件数量,MyScaleDB将这些段文件序列化为两个文件,并将它们存储在数据部分中。skp_idx_[index_name].meta文件记录了每个段文件的名称和偏移量,而skp_idx_[index_name].data文件存储了每个段文件的原始数据。

索引文件序列化
Tantivy利用内存映射(mmap)来访问段文件。这种方法不仅提高了并发搜索速度,还增强了索引构建效率。由于Tantivy无法直接将skp_idx_[index_name].data文件映射到内存中,当用户发起需要FTS索引的查询时,MyScaleDB将索引文件(.meta和.data)反序列化为Tantivy段文件,并加载Tantivy索引到临时目录中。Tantivy通过内存映射加载这些反序列化的段文件,以执行各种类型的文本搜索。因此,用户的初始查询请求可能需要几秒钟才能完成。

在托管的MyScaleDB服务中,我们将Tantivy的段索引文件存储在NVMe SSD上。这减少了I/O等待时间,并提高了在需要随机访问和处理页面错误异常的场景中的内存映射性能。

增强ClickHouse的本地文本搜索功能

当在包含FTS索引的列上发起带有过滤条件的请求时,MyScaleDB首先访问FTS索引。它检索满足SQL过滤条件的列的所有行ID,并将这些行ID存储在一个高级位图数据结构中,称为Roaring Bitmap。在遍历粒度时,我们确定粒度的行ID范围是否与位图相交,从而判断是否可以丢弃该粒度。最终,MyScaleDB只访问那些未被丢弃的粒度,从而实现查询加速。
跳过粒度
理想情况下,跳跃索引确实可以加速查询,但我们发现其效果有限。如果搜索的词项几乎出现在所有粒度中,MyScaleDB只能跳过少量的粒度,需要访问大量的粒度进行查询,使得跳跃索引在这种情况下失效。令人兴奋的是,MyScaleDB引入了TextSearch函数,不仅解决了跳跃索引的低效问题,还带来了其他实用功能。

引入TextSearch函数

为了充分利用Tantivy的全文搜索功能,我们将TextSearch函数纳入到MyScaleDB中。这允许用户执行模糊文本检索请求,并获得按BM25得分相关性排序的一组文档。此外,用户可以在TextSearch函数中使用自然语言查询,大大降低了SQL编写的复杂性。
文本搜索
TextSearch函数在搜索文本时从表中检索前K个最相关的结果。在执行方面,MyScaleDB同时对所有数据部分执行TextSearch文本检索。因此,每个部分都收集按BM25得分排序的前K个最相关的结果。然后,MyScaleDB根据BM25得分从数据部分获取的这些结果进行聚合。最后,根据用户SQL查询中指定的ORDER BY和LIMIT子句,MyScaleDB保留前K个结果。TextSearch函数不直接从数据部分中读取数据,而是通过Tantivy直接检索索引搜索结果,因此非常快速。

需要注意的是,MyScaleDB使用多个数据部分来存储数据,每个数据部分负责存储整个表数据的一部分。我们不能简单地对每个部分对应的相同答案文本的BM25得分进行平均并排序。这是因为每个部分在计算BM25得分时,只考虑当前部分内的“总文档数”、“总词项数”和“文档频率”,而不考虑其他部分内与BM25算法相关的其他参数。因此,这会导致最终合并结果的准确性降低。

为了解决这个问题,我们在启动TextSearch查询之前,首先计算每个部分内的BM25统计信息,然后将它们合并为整个表的逻辑对应的BM25统计信息。此外,我们修改了Tantivy库,以支持共享的BM25信息的使用。这确保了在多个部分之间的TextSearch搜索结果的正确性。

下面是在ms_macro数据集上使用TextSearch函数执行基本文本搜索的简单示例。有关如何使用TextSearch函数的更多信息,请参考我们的TextSearch文档。

SELECT
    id,
    text,
    TextSearch(text, 'who is Obama') AS score
FROM ms_macro
ORDER BY score DESC
LIMIT 5

输出:

idtextscore
2717481Sasha Obama Biography. Name at birth: Natasha Obama. Sasha Obama is the younger daughter of former U.S. president Barack Obama. Her formal name is Natasha, but she is most often called by her nickname, Sasha. Sasha Obama was born in 2001 to Barack Obama and his wife, Michelle Obama, who were married in 1992. Sasha Obama has one older sister, Malia, who was born in 1998.15.448088
5016433Sasha Obama Biography. Sasha Obama is the younger daughter of former U.S. president Barack Obama. Her formal name is Natasha, but she is most often called by her nickname, Sasha. Sasha Obama was born in 2001 to Barack Obama and his wife, Michelle Obama, who were married in 1992. Sasha Obama has one older sister, Malia, who was born in 1998.15.407547
564474Michelle Obama net worth: $11.8 Million. Michelle Obama Net Worth: Michelle Obama is an American lawyer, writer and First Lady of the United States who has a net worth of $11.8 million.Michelle Obama was born January 17, 1964 in Chicago, Illinois.ichelle Obama net worth: $11.8 Million. Michelle Obama Net Worth: Michelle Obama is an American lawyer, writer and First Lady of the United States who has a net worth of $11.8 million.14.88242
5016431Name at birth: Natasha Obama. Sasha Obama is the younger daughter of former U.S. president Barack Obama. Her formal name is Natasha, but she is most often called by her nickname, Sasha. Sasha Obama was born in 2001 to Barack Obama and his wife, Michelle Obama, who were married in 1992.14.63069
1939756Michelle Obama Net Worth: Michelle Obama is an American lawyer, writer and First Lady of the United States who has a net worth of Michelle Obama Net Worth: Michelle Obama is an American lawyer, writer and First Lady of the United States who has a net worth of $40 million. Michelle Obama was born January 17, 1964 in Chicago, Illinois. She is best known for being the wife of the 44th President of the United States, Barack Obama. She attended Princeton University, graduating cum laude in 1985, and went on to earn a law degree from Harvard Law School in 1988.14.230849

性能评估

我们使用clickhouse-benchmark对MyScaleDB在不同索引下的搜索性能进行了比较,包括MyScaleDB实现的FTS索引、ClickHouse内置的倒排索引以及没有任何索引的情况。

基准测试设置

数据集详情

为了测试TextSearch性能,我们使用了Microsoft提供的ms_macro数据集。ms_macro数据集包含8841823条文本记录,我们将其转换为parquet格式,以便轻松导入到MyScaleDB中。此外,我们创建了一组用于测试搜索性能的SQL文件,这些文件基于不同的词频。读者可以通过S3访问本测试中使用的数据集:

ms_macro_query_files.tar.gz文件包含了本测试中使用的所有SQL文件。例如,每个SQL文件的名称指示了在数据集中搜索词项的频率以及SQL文件中包含的查询数量。例如,ms_macro_count_hastoken_100_100k.sql文件包含10万个查询,每个查询中的词在数据集中出现100次。

以下是hasToken和TextSearch查询的示例:

SELECT count(*) FROM ms_macro WHERE hasToken(text, 'Crimp');
SELECT count(*) FROM (
    SELECT TextSearch(text, 'Crimp') AS score
    FROM ms_macro ORDER BY score DESC LIMIT 10000000
) as subquery;
测试环境

尽管我们的测试环境具有64GB的内存,但在测试过程中,MyScaleDB的内存消耗保持在2.5GB左右。

项目值
系统版本Ubuntu 22.04.3 LTS
CPU16核 (AMD Ryzen 9 6900HX)
内存速度64GB
磁盘512GB NVMe SSD
MyScaleDBv1.5
数据导入过程

为ms_macro数据集创建表:

CREATE TABLE default.ms_macro
(
    `id` UInt64,
    `text` String
)
ENGINE = MergeTree
ORDER BY id
SETTINGS index_granularity = 128;

将数据直接从S3导入到MyScaleDB:

INSERT INTO default.ms_macro
SELECT * FROM
s3('https://myscale-datasets.s3.ap-southeast-1.amazonaws.com/ms_macro_text.parquet','Parquet');

合并ms_macro的数据部分以提高搜索速度。请注意,此操作是可选的。

OPTIMIZE TABLE default.ms_macro final;
SELECT count(*) FROM system.parts WHERE table = 'ms_macro';

输出:

count()
1

验证ms_macro包含8841823条记录:

SELECT count(*) FROM default.ms_macro;

输出:

count()
8841823
索引创建

我们将评估三种类型的索引的性能:FTS、倒排和无索引(没有任何索引的情况)。

  • 创建FTS索引
-- 确保在创建FTS索引时,ms_macro表的text列上不存在其他索引。
ALTER TABLE default.ms_macro DROP INDEX IF EXISTS fts_idx;
ALTER TABLE default.ms_macro ADD INDEX fts_idx text TYPE fts;
ALTER TABLE default.ms_macro MATERIALIZE INDEX fts_idx;
  • 创建倒排索引
-- 确保在创建倒排索引时,ms_macro表的text列上不存在其他索引。
ALTER TABLE default.ms_macro DROP INDEX IF EXISTS inverted_idx;
ALTER TABLE default.ms_macro ADD INDEX inverted_idx text TYPE inverted;
ALTER TABLE default.ms_macro MATERIALIZE INDEX inverted_idx;
  • 无索引:确保ms_macro表的text列不包含任何索引。
运行基准测试

使用clickhouse-benchmark进行压力测试。有关更多使用说明,请参考ClickHouse文档。

clickhouse-benchmark -c 8 --timelimit=60 --randomize --log_queries=0 --delay=0  < ms_macro_count_hastoken_100_100k.sql -h 127.0.0.1 --port 9000

评估结果

性能

从比较结果可以看出,当搜索词的频率较高(100K1M)时,跳跃索引的加速效果非常有限(与没有建立任何索引的性能相比,仅提高了十倍)。然而,当搜索词的频率较低(1001K)时,跳跃索引可以实现显著的加速效果(与没有建立任何索引的性能相比,提高了多达一百倍)。

另一方面,TextSearch函数在所有场景下始终优于跳跃索引和倒排索引。这是因为TextSearch直接利用了Tantivy的全文搜索功能,无需扫描粒度,而是直接从索引中检索结果。这导致搜索过程更快、更高效。

结论

将Tantivy集成到MyScaleDB中显著增强了其文本搜索功能,使其成为文本数据分析和基于大型语言模型(LLM)的检索增强生成(RAG)的强大工具。通过解决ClickHouse本地文本搜索功能的局限性,并引入BM25相关性评分、可配置的分词器和自然语言查询等高级功能,MyScaleDB现在为复杂的文本搜索需求提供了强大而高效的解决方案。

为Tantivy构建C++包装器、创建新的跳跃索引以及引入TextSearch函数都对此改进做出了贡献。这些增强不仅提升了MyScaleDB的性能,还扩展了其用例,使其成为各种应用中高效准确的文本搜索的首选。

有关如何使用TextSearch函数和其他功能的更多信息,请参考我们的文本搜索和混合搜索文档。

希望本文为您提供了有关集成过程和其对MyScaleDB带来的好处的有价值的见解。敬请期待更多更新和改进,我们将继续增强MyScaleDB的功能。

集成向量数据库对比:MyScale vs. PostgreSQL & OpenSearch MyScale 是一个提供完整 SQL 支持的集成向量数据库,PostgreSQL 和 OpenSearch 最近都添加了向量相似性搜索功能的传统数据库。本文将对 MyScale 、PostgreSQL 和 OpenSearch 进行比较。 阅读详情

相关推荐

深入探讨 Tantivy 及其在 Milvus 中的应用:倒排索引库对比与选择

Tantivy是一个开源的全文搜索引擎库,类似于 Apache Lucene。它提供了一套丰富的搜索功能,包括倒排索引、布尔查询、范围查询和前缀匹配等。得益于 Rust 的高效内存管理,Tantivy 在内存占用和执行速度上表现出色,非常适合用于处理大规模数据集的搜索需求。库名语言特点适用场景TantivyRust高效内存管理,支持多线程并发查询高性能小规模应用LuceneJava强大查询功能,成熟文档评分与排序机制大规模搜索引擎WhooshPython轻量级,易用中小型应用、快速开发。

花千树的专栏 2097

高性能 AI 数据库 MyScaleDB 开源啦!只用 SQL,人人可以构建企业级 AI 应用

随着开源版本 MyScaleDB 的发布,开发人员将可以利用结构化数据的价值与不同的大模型结合,以实现多样化的用例,从而用更低的成本和更快的创新节奏来获得更好的性能。我们相信,在当今不断变化的 AI 世界中,MyScaleDB 的开源为开发者们提供了处理复杂数据的潜力的钥匙。汤林鹏,墨奇科技 CTO :“我们很开心能将 MyScaleDB 开源,通过开源我们的技术,希望促进 AI 开发者之间的创新与合作,最终实现在 AI 数据管理和分析领域的突破性解决方案。让我们携手共建 AI 应用的未来!

MyScale_VectorDB的博客 3141

使用 MyScaleDB 和 BentoML 构建基于开源云托管 LLM 的 RAG 应用程序

本文介绍了如何使用 MyScaleDB 和 BentoML 构建 RAG 应用,达到节省成本,减少维护的目的。

MyScale_VectorDB的博客 919

MyScaleDB:为AI应用打造的开源SQL向量数据库

MyScaleDB作为一个开源的SQL向量数据库,为AI应用开发者提供了一个强大而灵活的工具。它不仅保留了传统SQL数据库的易用性,还融合了向量数据库的高效搜索能力和全文搜索引擎的功能。无论您是在构建下一代AI应用,还是在优化现有的数据处理流程,MyScaleDB都能为您提供所需的性能、可扩展性和灵活性。随着AI技术的不断发展,数据管理的需求也在不断增长和变化。MyScaleDB团队将继续致力于提供最先进的解决方案,帮助开发者应对这些挑战。

2401_87458718的博客 1050

MyScale vs. Elasticsearch:高效升级和替代方案

在本文中,我们展示了MyScaleDB在全文搜索性能方面与Elasticsearch不相上下,同时实现了更低的延迟和40%的内存利用率。此外,当结合向量搜索时,MyScale的性能提高了10倍,而成本仅为原来的12%。凭借其高性能、低成本以及基于ClickHouse的丰富SQL生态系统,MyScaleDB成为Elasticsearch的高效和强大的升级和替代方案。

MyScale_VectorDB的博客 1747

tantivy 用Rust开发搜索引擎

搜索引擎(search engine)是互联网技术中最重要的组成部分之一,它用于收集、整理、索引和存储海量数据。它的主要功能是快速地对海量文档进行检索、排序和过滤,为用户提供良好的检索体验。目前,搜索引擎已成为网络生活的一部分,如谷歌、百度、bing、yahoo等。搜索引擎可以帮助用户快速找到需要的信息,并减少时间和精力的浪费。搜索引擎通过提升检索效率和相关性,大幅提高了互联网服务的质量。

AI天才研究院 3164

RAG 新进展:伊克罗德信息、墨奇科技战略合作,共研低成本快速定制大模型

LLM 技术结合 RAG 不仅提高了答案的质量,还为特定行业的应用带来了新的机会,向量数据库不仅仅是一种技术工具,更是连接数据与 AI 的桥梁。

优快云云计算 2010

Tantivy是用Rust编写的全文本搜索引擎库。-Rust开发

Tantivy是用Rust编写的全文本搜索引擎库。 从某种意义上说,它不是Tantivy是用Rust编写的全文本搜索引擎库,它比Apache Lucene距Elasticsearch或Apache Solr更近。 从某种意义上说,它不是现成的搜索引擎服务器,而是一个可用于构建这样的搜索引擎的板条箱,它与Apache Lucene的距离比与Elasticsearch或Apache Solr的距离更近。 实际上,Tantivy受到Lucene设计的强烈启发。 基准以下基准破坏了不同类型的查询/集合的性能。 通常,在与Top-K合并时,Tantivy往往比Lucene慢

探索高效搜索的新星:Tantivy搜索引擎

是一个由 Rust 编程语言构建的全文搜索引擎库,为开发者提供了强大的文本检索和数据分析能力。它借鉴了 Lucene 和 Elasticsearch 等成熟产品的设计理念,并以高性能、可扩展性和易用性为目标。 ## 技术分析 ### 高性能 Tantivy 使用 Rust 语言编写,Rust 的强类型、内存安全和并发特性确保了其在处理大量数据时具有卓越的性能。它采用了倒排索引结构,这种结构能快

gitblog_00060的博客 990

点云配准实战:用DGCNN+Transformer+SVD搞定3D模型对齐(附PyTorch代码)

本文详细介绍了基于深度学习的点云配准实战方法,重点解析了Deep Closest Point (DCP)模型。该模型融合了DGCNN、Transformer和可微分SVD三大核心模块,能够端到端地预测点云间的刚性变换,有效克服传统ICP算法对初始位置敏感、易陷入局部最优的缺点。文章提供了完整的PyTorch代码实现、ModelNet40数据集处理、训练策略及显存优化技巧,旨在帮助开发者在机器人、自动驾驶等领域实现精准的3D模型对齐。

weixin_29061041的博客 153

无线网卡选购指南:哪些型号支持Kali Linux的监听模式?附免驱动网卡推荐

本文详细解析了如何在Kali Linux下选购支持监听模式的无线网卡。核心在于选择兼容的芯片组,如Atheros AR9271和Ralink RT3070等经典型号,并提供了免驱动网卡推荐与实战配置指南,帮助安全研究人员和爱好者快速搭建无线测试环境。

wind6的博客 1555

Tantivy 全文搜索引擎

但更快、更适合嵌入式场景。它主要用于构建搜索引擎、日志分析、推荐系统等应用。Tantivy 是一个高性能的全文搜索引擎库,使用。在 Rust 项目的。

qq_45638953的博客 775

OpenAI Codex 国内安装配置全攻略:从零到实战的 AI 编程助手集成指南

AI 编程助手正成为提升开发效率的关键工具,其核心原理是基于大规模语言模型对代码语义进行深度理解与生成。这类技术通过将自然语言指令转化为可执行的代码、自动化重构与调试,为开发者提供了智能化的结对编程体验,其技术价值在于显著降低编码复杂度、加速项目迭代。在实际应用场景中,AI 编程助手可集成于日常开发流,辅助完成代码生成、项目分析与自动化任务。本文聚焦于 OpenAI 的 Codex,针对国内开发者在网络、认证和配置上的常见挑战,提供了涵盖多种安装方式、详细配置步骤及核心使用技巧的实战指南,并特别介绍了如何利

weixin_28715081的博客 415

Tantivy使用Rust 开发的全文搜索引擎库

Tantivy是一个全文搜索引擎库,灵感来自Apache Lucene,用Rust编写。如果你正在寻找Elasticsearch或Apache Solr的替代品,请查看我们基于Tantivy构建的分布式搜索引擎Quiuckwit。Tantivy更接近Apache Lucene,而不是Elasticsearch或Apache Solr,因为它不是现成的搜索引擎服务器,而是一个可用于构建此类搜索引擎的库。

hello.reader 2909

国产麒麟系统下用Rider开发C#桌面应用:从环境配置到Avalonia UI实战

本文详细介绍了在国产麒麟系统上使用JetBrains Rider开发C#桌面应用的完整流程,重点讲解了Avalonia UI框架的实战应用。从环境配置、Rider安装到Avalonia项目创建和UI开发技巧,全面覆盖了在非Windows环境下进行C#开发的关键步骤和优化建议,助力开发者高效构建跨平台桌面应用。

weixin_27791839的博客 387

YOLOv11 改进 - 下采样 | 轻量化突破:ADown 下采样让 YOLOv11 参量减、精度升

本文介绍了一种轻量级的特征下采样模块 ADown,它结合平均池化与最大池化策略,实现更有效的信息保留与压缩。在传统卷积网络中,特征下采样常造成信息损失,而 ADown 通过双通道并行结构优化了下采样效果,提升了模型的表达能力。在 YOLOv11 中引入 ADown 替换原有的下采样模块后,网络在保持高效性的同时,显著提升了目标检测的精度与稳定性。文章详细介绍了 ADown 的核心代码实现、模块注册流程以及 YOLOv11-ADown 模型的配置和训练方法,为轻量化目标检测模型的优化提供了实用参考。

魔改工程师的博客 1480

【亲测免费】 myscaledb 开源项目安装与使用指南

myscaledb 开源项目安装与使用指南 一、项目目录结构及介绍 myscaledb ├── README.md # 项目说明文档 ├── LICENSE # 许可证文件 ├── src # 源代码目录 │ ├── main.py # 主入口文件,通常包含应用程序的核心逻辑 │ └── ... ...

gitblog_00117的博客 665

【图像超分】论文复现:Pytorch实现SRCNN!保姆级复现教程!提供完整代码和最优权重模型(x2、x3、x4)!科研级论文曲线图!计算平均PSNR和SSIM!代码Windows和Linux都可用!

由于很多同学反应没用过jupyter notebook,更习惯用pycharm项目的形式跑代码。于是,本文将用pycharm项目的形式,重新复现SRCNN!【图像超分】论文复现:新手入门!Pytorch实现SRCNN,数据预处理、模型训练、测试、评估全流程详解,注释详细,简单修改就可以训练你自己的图像数据,有训练好的模型下载地址,随取随用。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 4703

Tantivy:一个高性能的Rust全文搜索引擎库

Tantivy:一个高性能的Rust全文搜索引擎库 【免费下载链接】tantivy Tantivy is a full-text search engine library inspired by Apache Lucene and written in Rust ...

gitblog_01058的博客 682

基于TKVA与深度学习的量子点微型光谱仪光谱重建改进算法研究

本文提出了一种融合深度学习的改进TKVA算法(TKVA-DL),用于提升量子点微型光谱仪的光谱重建精度。该方法创新性地结合深度先验网络与注意力机制,通过自适应学习光谱隐式先验替代传统固定正则化项,并动态加权探测器响应通道。实验表明,所提方法在仿真和实测数据上均显著优于传统TKVA及主流深度学习算法,RMSE降低35%,PSNR提升4.2 dB,同时保持物理可解释性。完整MATLAB实现验证了方法的有效性与可复现性,为微型光谱仪的高精度重建提供了新思路。 关键词:量子点微型光谱仪;光谱重建;Tikhonov正

AI的内部世界的博客 83

Openclaw 错误分析 与 解决方案 之:Selected model is at capacity. Try a different model, or wait and retry.

Openclaw 错误分析 与 解决方案 :Selected model is at capacity. Try a different model, or wait and retry.

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 6421

长文本杀不死RAG!SQL+向量 AI 数据库开源了!

、▼最近直播超级多,预约保你有收获RAG 的出现使得大模型能从大规模的知识库中精确地抽取信息,并生成实时、专业、富有洞察力的答案。伴随而来的是 RAG 系统的核心功能向量数据库也得到了迅速发展,按照向量数据库的设计理念我们可以将其大致分为三类:专用向量数据库、关键字和向量结合的检索系统、SQL 向量数据库。专用向量数据库以 Pinecone/Milvus 为代表。关键字和向量检索系统以 Elast...

musicml的博客 1063

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Tantivy:Rust编写的快速全文搜索引擎库

Tantivy:Rust编写的快速全文搜索引擎库 【免费下载链接】tantivy Tantivy is a full-text search engine library inspired by Apache Lucene and written in Rust ...

gitblog_01136的博客 899

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

MyScaleDB 向量数据库的技术路线与选型策略

对于那些需要处理大规模数据复杂数据的客户来说,全面数据管理能力和复杂查询的能力,以及海量数据时的性价比是一个非常重要的考虑因素。ClickHouse 处理大规模结构化数据的性能出色,在改造的过程中,墨奇科技对向量化的算法、系统以及SQL与向量的联合查询和存储进行了深入的优化,确保了在保持高性能向量检索和复杂查询的同时,也能够满足企业对通用数据的全面需求。尽管向量数据库的前景广阔,但仍需紧密关注技术和市场的变化,确保发展方向与行业需求紧密结合,从而推动向量数据库在更多领域的广泛和深入应用。

MyScale_VectorDB的博客 1266

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

超越传统 RAG 系统:基于 MyScaleDB 和 LlamaIndex 的 AI 智能体构建实战

传统的基于检索增强生成(RAG)的数据流水线通常依赖于硬编码步骤,每次运行都遵循预定义的路径。在这些系统中,没有实时决策,也不会根据输入数据动态调整操作。这种局限性会降低系统在复杂或不断变化的环境中的灵活性和响应能力,突显了传统 RAG 系统的主要弱点。

bugyinyin的博客 1082

MyScaleDB 开源项目教程

MyScaleDB 开源项目教程 项目介绍 MyScaleDB 是一个高性能的分布式数据库系统,旨在提供快速、可靠的数据存储和查询服务。它支持多种数据模型,包括键值对、文档和图形,适用于各种规模的应用程序。MyScaleDB 的设计理念是简单、灵活和可扩展,使其成为构建现代数据驱动应用的理想选择。 项目快速启动 环境准备 在开始之前,请确保您的系统已经安装了以下软件: Docker Git 克...

gitblog_00443的博客 630
上一篇: 如何在向量数据库中运行复杂的 SQL 查询进行向量搜索
下一篇: 低门槛、高性价比:MyScaleDB 与 Dify 联手打造全新 AI 应用开发组合
「已注销」
博客等级 码龄3年 186粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值