案例二:搭建文档检索系统

本文介绍了文档检索系统的概念,以及搭建文档检索系统的流程。

概念

文档检索系统是一种用于快速准确地检索和获取文档信息的技术。它基于文档的内容和结构,通过计算机自然语言处理和信息检索的技术,将文档转化为可检索的形式,并根据用户的查询需求来匹配和排序相关的文档。

文档检索系统的应用场景非常广泛。诸如:

  • 在企业和组织中,用于管理和检索大量的文档和知识资料,方便员工快速获取所需的信息。

  • 在学术研究领域,用于检索和获取相关的学术文献,帮助研究人员快速了解和掌握最新的研究成果。

  • 在新闻和媒体领域,用于检索和获取相关的新闻报道,以便及时了解和分析重要的新闻事件。

此外,文档检索系统还可以应用于法律和医学领域,用于检索和获取相关的法律文书和医学文献。

搭建流程

创建文档数据表

创建文档数据表的SQL语句如下:

CREATE TABLE enterprise_context(
    id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
    content text DEFAULT NULL COMMENT '内容',
    PRIMARY KEY (id)
) ENGINE=InnoDB COMMENT='文本数据';

插入文档数据

插入文档数据的SQL语句如下:

INSERT INTO enterprise_context(id,content) VALUES
(1,'中科软科技股份有限公司(英文:Sinosoft Company Limited,上市公司,证券简称:中科软,证券代码:603927  )是中国科学院软件所实施知识创新试点工程的产物,是研究所技术研究及开发主体转制的结果。中科软科技股份有限公司总部设在北京,注册资金59360万元,是专门从事计算机软件研发、应用、服务的智能密集型高新技术企业。'),
(2,'中科软科技以大型应用软件开发和计算机系统集成为核心,集自主开发的行业通用软件产品、网络信息安全软件产品、大型网络应用软件组合平台、中间件软件产品及应用工具于一体,涵盖了系统软件、支撑软件、建筑智能化工程、行业应用软件等各个层次,并可为大型应用系统工程提供全方位支持。')

创建文档向量表

创建文档向量表的SQL语句如下:

/*polar4ai*/CREATE TABLE vector_table(
  id bigint,
  content text, 
  content_vector vector_768, 
  primary key(id)
);

文档数据向量化

您可以根据实际使用场景,选择将文档数据离线向量化或在线向量化。

  • 将文档数据离线向量化的SQL语句如下:

    /*polar4ai*/select id, content from predict(model _polar4ai_text2vec, select id,content from enterprise_context) 
    with (
      x_cols='content',
      primary_key='id',
      mode='async',
      vec_col='content_vector'
    )
    into vector_table;

    其中,_polar4ai_text2vec为文本转向量化模型,目前仅支持输出768维向量。with()中的参数说明如下:

    参数

    说明

    示例值

    primary_key

    向量表的主键。

    id

    x_cols

    用于存储文本的字段。

    content

    mode

    文档数据的写入模式。目前仅支持async(异步)模式。

    async

    vec_col

    向量表中存储向量的字段。

    content_vector

  • 将文档数据在线向量化的SQL语句如下:

    /*polar4ai*/SELECT * FROM predict(model _polar4ai_text2vec, SELECT '中科软证券代码是多少') with();

进行向量检索

进行向量检索的SQL语句如下:

/*polar4ai*/SELECT id,'distance(content_vector,[1,2,3,4,5……,768])' FROM vector_table LIMIT 10;