分词和模糊查询使用指南

本文介绍了在检索数据时使用分词查询和模糊查询的语法和使用示例。

创建检索表

创建检索表的示例如下:

/*polar4ai*/CREATE TABLE table_name (
    id int,
    name varchar,
    name_1 wildcard,
    content text,
    content_1 text_ik_smart,
    content_2 text_ik_max_word,
    type int,
    primary key(id)
);

其中,字段类型无需指定精度,并且创建检索表时必须指定主键。上述SQL语句中涉及的参数说明如下:

参数名称

说明

id

自定义主键。

name

名称。

name_1

通配符类型,此处使用wildcard来定义通配符类型。适用于模糊查询场景。

content

分词类型,此处使用text来定义分词类型,默认为单个分词,适用于分词查询场景。

content_1

进行粗粒度拆分的词,此处使用text_ik_smart分词器。

content_2

进行细粒度拆分的词,此处使用text_ik_max_word分词器。

type

类型。

查看表信息

查看指定表的表信息示例如下:

/*polar4ai*/DESCRIBE TABLE table_name;

查看所有表

查看所有表信息的示例如下:

/*polar4ai*/SHOW tables;

插入、更新表

插入、更新表信息的示例如下:

/*polar4ai*/UPSERT INTO table_name(id,name,name_1,content,content_1,content_2,type) VALUES(1,'马云','马云','阿里巴巴创始人','阿里巴巴创始人','阿里巴巴创始人',1)

插入或更新表数据时,主键必须存在,且按照主键进行全列插入或更新,不支持插入或更新部分列。

模糊查询(LIKE查询)

模糊查询示例如下:

/*polar4ai*/SELECT * FROM table_name WHERE name LIKE '马%' AND type=1 LIMIT 10;
/*polar4ai*/SELECT * FROM table_name WHERE name_1 LIKE '马%' AND type=1 LIMIT 10;

其中,namename_1字段为非分词字段类型,SQL语句中不添加LIMIT关键字时,默认最多查询10000条数据。

分词查询(match_text查询)

分词查询示例如下:

/*polar4ai*/SELECT * FROM table_name WHERE match_text(content,'创') AND type=1 LIMIT 10;
/*polar4ai*/SELECT * FROM table_name WHERE match_text(content_1,'创始人') AND type=1 LIMIT 10;

其中,contentcontent_1字段必须为分词字段类型,SQL语句中不添加LIMIT关键字时,默认最多查询10000条数据。

删除数据

删除数据示例如下:

/*polar4ai*/DELETE FROM table_name WHERE id=1;

删除表

删除表示例如下:

/*polar4ai*/DROP TABLE table_name;