WEB开发网
开发学院数据库Oracle 使用Oracle Text构建全文搜索应用程序 阅读

使用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)
);

上一页  1 2 3 4 5 6  下一页

Tags:使用 Oracle Text

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接