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
通过LangChain对高级RAG系统进行Reranking的增强

LangChain 是一种颠覆我们与语言模型互动方式的尖端技术。LangChain将大型语言模型(LLM)的强大能力与外部知识库相结合,通过检索增强生成(RAG)提升这些模型的能力。这种整合使得参数化的语言模型和来自外部来源的非参数化数据之间的信息流动变得无缝。 本质上,LangChain充当传统语言模型和庞大外部知识库之间 ...

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

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

Start building your Al projects with MyScale today

Free Trial
Contact Us