Sign In
Free Sign Up
  • English
  • Español
  • 简体中文
  • Deutsch
  • 日本語
Sign In
Free Sign Up
  • English
  • Español
  • 简体中文
  • Deutsch
  • 日本語

介绍 MyScale 强大的全文和混合搜索功能

MyScale 是一个基于 ClickHouse 构建的全面托管的 SQL 向量数据库,提供先进的向量搜索功能。在 MyScale 的 1.5.0 版本中,我们引入了由 Tantivy 提供支持的升级版全文搜索功能。

通过实现 BM25 算法来计算搜索结果的相关性得分,显著提高了 MyScale 的全文搜索功能。BM25 算法是文本搜索中的关键特性,它提供了一种根据与原始查询的相关性对搜索结果进行排序的方法。它考虑了词频、逆文档频率和文档长度等因素。该算法为每个文档分配一个得分,使得最相关的结果能够首先显示。

然而,MyScale 和 ClickHouse 的全文搜索目前面临两个主要挑战:

  • **性能低下:**搜索和排序大型表格很慢,特别是当表格增加到数百万行时。
  • **功能不足:**ClickHouse 缺乏对模糊搜索、相关性调整和 BM25 相关性评分的支持,这些功能在现代搜索引擎中很常见。

相关性调整是文本搜索中的另一个重要功能。它允许您对搜索算法进行微调,以优先考虑搜索的特定方面,例如将标题中的匹配结果与正文中的匹配结果进行加权,从而显著提高搜索结果的准确性和实用性。

模糊搜索也非常有价值,特别是用于处理搜索查询中的拼写错误或拼写错误。借助模糊搜索,搜索引擎可以找到与搜索查询相似的文档,即使它们不是完全匹配。这显著提升了用户体验,并确保不会因为小的拼写错误而错过相关结果。

MyScale 的全文搜索索引旨在弥合 MyScale 和专用引擎(如 Elasticsearch)之间的差距,消除了对额外服务的需求。

MyScale 全文搜索索引的主要特点包括:

  • 完全与 MyScale 原生集成,无需外部依赖;
  • 基于 Tantivy 构建,是 Apache Lucene 的快速、资源高效的替代品;
  • 查询时间比 ClickHouse 内置的倒排索引快 300 倍以上;
  • 支持模糊搜索、通配符搜索以及丰富的分词器;
  • 使用类似于 Elasticsearch 的 BM25 进行相关性评分;
  • 实时搜索,无需手动重新索引。
    Boost Your AI App Efficiency now
    Sign up for free to benefit from 150+ QPS with 5,000,000 vectors
    Free Trial
    Explore our product
    例如:

首先,我们创建一个表来存储维基百科数据,以测试全文搜索功能。

CREATE TABLE default.en_wiki_abstract(
    `id` UInt64,
    `body` String,
    `title` String,
    `url` String,
)
ENGINE = MergeTree
ORDER BY id;

body列上创建全文搜索(FTS)索引时,需要注意索引参数中的分词器的配置。在这种情况下,我们选择了一个具有英语词干处理和停用词的分词器。

ALTER TABLE default.en_wiki_abstract
ADD INDEX body_idx (body)
TYPE fts('{"body":{"tokenizer":{"type":"stem", "stop_word_filters":["english"]}}}');

接下来,我们使用 S3 上传数据:

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

现在,我们可以使用TextSearch()函数在body列上进行搜索,该函数将返回一个 bm25 得分。

SELECT
    id,
    title,
    body,
    TextSearch(body, 'non-profit institute in Washington') AS score
FROM default.en_wiki_abstract
ORDER BY score DESC
LIMIT 5;

输出:

id title body score
3400768 Drug Strategies Drug Strategies is a non-profit research institute located in Washington D.C. 24.457561
872513 Earth Policy Institute Earth Policy Institute was an independent non-profit environmental organization based in Washington, D.C. 22.730673
895248 Arab American Institute Founded in 1985, the Arab American Institute is a non-profit membership organization based in Washington D.C. 21.955559
1950599 Environmental Law Institute The Environmental Law Institute (ELI) is a non-profit, non-partisan organization, headquartered in Washington, D.C. 21.231567
2351478 Public Knowledge Public Knowledge is a non-profit Washington, D.C. 20.742344

此外,MyScale 内的全文搜索功能可以与向量搜索集成,通过 RAG 流水线进行混合搜索。用户通常会使用向量搜索和全文搜索进行单独的查询,然后通过应用 Python 库(如 ranx)中的融合算法重新组织来自两个搜索的结果。

有关这些主题的详细指南,请访问:

最后,基于 Tantivy 的全文搜索索引将很快在我们的开源项目MyScaleDB (opens new window)中提供,敬请关注!

Keep Reading
images
理解向量索引

在数据库开发的早期阶段,数据存储在基本表中。这种方法很简单,但随着数据量的增长,管理和检索信息变得越来越困难和缓慢。然后引入了关系数据库,提供了更好的存储和处理数据的方式。 关系数据库中的一个重要技术是索引,它与图书馆存储图书的方式非常相似。与查找整个图书馆不同,您可以直接找到所需书籍所在的特定部分。数据库中的索引以类似的方式工作,加快了查找所需数据的过程。 在本博客中,我们将介绍向量 ...

images
使用 MyScale 构建支持 RAG 的聊天机器人

大型语言模型(LLM)在从知识库中检索上下文后,可以更可靠地提供真实答案,这就是检索增强生成(RAG)的原理。我们之前的博客讨论了RAG的性能优势和[成本与延迟的可行性](https://myscale.com/blog/zh/what-to-expect-rag ...

popular
images
MyScale vs. Pinecone:大规模数据管理的最佳选择

在提到数据库时,关系数据库因其简单性和易用性,长期以来一直是数据存储的默认选择。然而,在当今以数据为驱动的互联网行业中,非结构化数据(如文本、图像和音频)的存储需求日益增多,使得[向量数据库](https://myscale.com/blog/zh/u ...

Start building your Al projects with MyScale today

Free Trial
Contact Us