创建全文索引的命令格式及参数说明
CREATE CONTEXT INDEX <索引名> ON [<模式名>.] <表名> (<索引列定义>)
[LEXER <分词器类型>]
[SYNC [TRANSACTION]];
<索引名>
:为需要创建的全文索引指定一个名字<模式名>
:指定表所在的模式名,如果不指定默认为当前模式<表名>
:指定需要创建全文索引的表<索引列定义>
:指定需要检索的列,括号内的列只能是表中已经存在的列,每个列定义与表中的列定义相同,即列名和数据类型LEXER <分词器类型>
:指定分词器类型,默认值为DEFAULT_LEXER
。可选的分词器类型包括:CHINESE_LEXER
:中文最少分词CHINESE_VGRAM_LEXER
:机械双字分词CHINESE_FP_LEXER
:中文最多分词ENGLISH_LEXER
:英文分词DEFAULT_LEXER
:默认分词,为中文最少分词
SYNC
:可选参数。默认创建全文索引不会更新分词数据。使用SYNC
子句可以在创建全文索引时执行一次全量更新,使索引创建后即可使用全文检索。SYNC TRANSACTION
参数表示在创建全文索引时执行一次全量更新,且每次事务提交都增量更新全文索引
以下是完整的创建达梦数据库全文索引的示例,包括创建表、插入数据、创建全文索引等步骤。
创建表
CREATE TABLE articles (
id INT PRIMARY KEY,
title VARCHAR(255),
content CLOB,
author VARCHAR(100)
);
插入示例数据
INSERT INTO articles (id, title, content, author) VALUES
(1, '达梦数据库入门', '达梦数据库是一款国产数据库管理系统,具有高性能、高可用性和高安全性等特点。本文介绍了达梦数据库的基本概念、安装和配置方法。', '张三'),
(2, '全文索引详解', '本文详细介绍了达梦数据库中的全文索引创建、更新和使用方法。通过全文索引,可以高效地检索文本数据。', '李四'),
(3, '数据库优化技巧', '数据库优化是提高数据库性能的重要手段。本文分享了几种常见的数据库优化技巧,包括索引优化、查询优化等。', '王五');
创建全文索引
CREATE CONTEXT INDEX idx_articles_content ON articles (content)
LEXER CHINESE_FP_LEXER
SYNC TRANSACTION;
此命令创建了一个名为 idx_articles_content
的全文索引,对 articles
表的 content
列进行索引,使用中文最多分词器(CHINESE_FP_LEXER
),并在创建时执行全量更新。
更新全文索引
完全更新
ALTER CONTEXT INDEX idx_articles_content ON articles Rebuild;
增量更新
ALTER CONTEXT INDEX idx_articles_content ON articles Increment;
使用全文索引进行检索
-- 检索 content 字段中包含'达梦数据库'的记录
SELECT * FROM articles WHERE CONTAINS(content, '达梦数据库');
-- 检索 content 字段中同时包含'全文索引'和'检索'的记录
SELECT * FROM articles WHERE CONTAINS(content, '全文索引 AND 检索');
-- 检索 content 字段中包含'数据库优化'且 author 字段为'王五'的记录
SELECT * FROM articles WHERE CONTAINS(content, '数据库优化') AND author = '王五';
以上示例完整展示了在达梦数据库中创建表、插入数据、创建全文索引、更新全文索引以及使用全文索引进行检索的步骤。您可以根据实际需求调整表结构、数据内容和索引参数。