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
扩展检索增强生成应用的挑战

检索增强生成(RAG)是自然语言处理(NLP)领域的一项重大突破,特别适用于AI应用的开发。RAG将大型[知识库](https://www.chatgptguide.ai/2024/03/02/what-is-knowledge-b ...

images
从 PostgreSQL 迁移向 MyScale 的向量数据

更新(2023-10-17):查看我们的新博客文章比较MyScale与Postgres和OpenSearch:对整合向量数据库的探索,以了解MyScale和PostgreSQL之间的全面比较。 人工智能和机器学习应用的快速增长,特别是涉及大规模数据分析的应用, ...

Start building your Al projects with MyScale today

Free Trial
Contact Us