执行全文检索-the design and analysis of algorithms

时间:2024-06-29 04:39:01
【文件属性】:

文件名称:执行全文检索-the design and analysis of algorithms

文件大小:4.17MB

文件格式:PDF

更新时间:2024-06-29 04:39:01

达梦,DM7

23.2 创建全文索引 在 DM中,全文索引必须在基表上定义,而不能在视图、临时表、堆表、分区表、外部 表上定义。同时,表必须未自定义聚集主键,而且同一列只能创建一个全文索引。DM 定义 全文索引时,不需要在表上先建立主关键字索引。创建全文索引的列类型可为 CHAR、 CHARACTER、VARCHAR、VARCHAR2、LONGVARCHAR、TEXT或 CLOB,例如上节对 address 表创建的全文索引列为 VARCHAR 类型。DM 的全文索引现只支持简体中文、英文语言。较 为详细的语法介绍可参考《DM_SQL》。 23.3 更新全文索引 全文索引的更新包括两种方式:完全更新和增量更新。 1. 完全更新 删除原有的全文索引,对基表进行全表扫描,逐一重构索引信息。在创建全文索引成功 后,需完完全更新全文索引才可以执行有效的全文检索。完全更新全文索引没有次数限制, 用户可以根据需要在增量更新或者是完全更新失败以及发生系统故障后都可以执行完全更 新全文索引。例如执行如下 SQL可以对 address表的全文索引进行完全更新: ALTER CONTEXT INDEX cti_address ON person.address REBUILD; 2. 增量更新 在上一次完全更新之后,表数据发生了变化,就可以使用增量更新来更新索引。增量更 新只对新发生改变的数据进行重新分词生成索引信息,所以其代价是较小的。此时,也可以 使用完全更新达到同样的更新索引的效果,但代价较大。 对全文索引的基表进行数据的增删改操作时,会将该数据的操作类型和 ROWID信息保 存到 CTI$INDEX_NAME$P表中。 例如执行如下 SQL可以对 address表的全文索引进行增量更新: ALTER CONTEXT INDEX cti_address ON person.address INCREMENT; DM 在执行更新全文索引的过程中并没有产生相应的日志,即无法实现更新的回滚,如 果在更新过程中发生任何错误,就必须执行完全更新获得正确的一致的全文索引信息。还需 要注意的是当对已创建全文索引的基表进行批量数据修改(例如查询插入、批量导入等)时, 需进行完全更新才能构建数据一致的新的全文索引,因为这些批量修改的数据信息未保存在 全文索引动态信息表中,所以此时执行增量更新操作起不到更新全文索引的作用。 23.4 执行全文检索 全文检索根据查询关键字或者句子,从全文索引中查询满足条件的记录。DM7支持对中 英文关键字或者句子的布尔查询。 全文检索支持的检索类型有: 1. 支持英文单词的检索(单词不区分大小写); 2. 支持全角英文的检索; 3. 支持简体中文词语的检索; 4. 支持常见单个汉字词的检索;


网友评论