使用Oracle Text构建全文搜索应用程序
2007-05-08 12:09:32 来源:WEB开发网核心提示: CREATE TABLE files (id NUMBER PRIMARY KEY,issue_id NUMBER,path VARCHAR(255) UNIQUE,ot_format VARCHAR(6));INSERT INTO files VALUES (1, 1, '/tm
CREATE TABLE files (
id NUMBER PRIMARY KEY,
issue_id NUMBER,
path VARCHAR(255) UNIQUE,
ot_format VARCHAR(6)
);
INSERT INTO files VALUES (1, 1, '/tmp/oracletext/found1.txt', NULL);
INSERT INTO files VALUES (2, 2, '/tmp/oracletext/found2.doc', NULL);
INSERT INTO files VALUES (3, 2, '/tmp/oracletext/notfound.txt', 'IGNORE');
此处 ot_format 的值是 Oracle Text 在索引过程中解析出来的。NULL 值表明系统会为文件自动选择一个过滤器,而如果值为 IGNORE,系统会跳过整个文件。
可以使用以下语句创建文本索引:
CREATE INDEX file_index ON files(path) INDEXTYPE IS ctxsys.context
PARAMETERS ('datastore ctxsys.file_datastore format column ot_format');
该语句将启动索引进程,索引进程将通过存储在基表中的路径在文件系统中检索文件,然后对内容进行过滤并建立索引。这样便创建了一个区分大小写并具有精确匹配语义的 CONTEXT 索引。该索引进程可以多种方式进行自定义,例如支持前缀和后缀匹配。
虽然大部分时间过滤阶段无需为每个文件指定文件格式即可很好地运行,但是,在基表中添加这一列可以对索引进程进行进一步控制。例如,使用格式列,您可以跳过某些文件类型不为其建立索引。当您只想正式支持应用程序中 Oracle Text 所支持的部分文件格式时,这一列非常有用。
Oracle Text 还可用于元数据的全文搜索。在示例应用程序中,有一个名为 issues 用于存储问题元数据的表。该表的定义如下:
CREATE TABLE issues (
id NUMBER,
summary VARCHAR(120),
description CLOB,
author VARCHAR(80),
ot_version VARCHAR(10)
);
- ››使用linux中的quota教程
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››使用jxl生成带动态折线图的excel
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
更多精彩
赞助商链接