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
选择矢量数据库前需要了解的一切

随着数据量和复杂性的不断增长,可扩展的NoSQL数据库解决方案正成为传统关系型数据库的热门替代方案。其中一种备受关注的类型是矢量数据库。矢量数据库承诺通过高维矢量搜索而不是传统的SQL查询来组织和检索数据,从而提供先进的语义搜索能力,根据数据的含义和相似性进行操作。 在选择矢量数据库之前,您需要仔细考虑一些关键因素,以确保它能够满足您当前和未来的应用和分析需求。这就是我们将在本博客中讨论的内容。 ...

images
高性能向量数据库在LLM应用开发中的可扩展性增强

强大的语言模型如GPT3.5-turbo和GPT4已经彻底改变了应用开发,导致了领域特定应用的激增。像PandaGPT和GiftWarp这样的杰出应用展示了这些模型的能力。这些应用之所以与众不同,是因为它们在数据处理方面表现出色。例如,PandaGPT可以无缝地从数百个PDF文档中检索信息。这使得PandaGPT在竞争激烈的应用市场中取得成功。 为了确保应用的长久发展,创业者必须优先考虑数据 ...

images
为什么综合向量数据库能够提升你的LLM应用?

大型语言模型(LLM)已经将许多惊人的想法变为现实,比如任何事物上的机器人、知识专家、研究助理等等。这些伟大的应用中的大多数将LLM与特定知识领域结合起来,向量数据库在此发挥作用。例如,假设你对一个领域有一个问题,最佳实践是从数据库中检索可能的领域并动态构建提示。 选择适合你的应用的正确向量数据库可以显著影响其效率和有效性。目前,市场上有许多向量数据库产品可供选择,通常分为两类——专业向量数据库 ...

Start building your Al projects with MyScale today

Free Trial
Contact Us