使用Oracle Text的步骤
(1)创建表来保存某些文档。该示例使用一个主关键字列来标识每个文档,使用一个小的VARCHAR2列来保存每个文档。
CREATE TABLE docs (id NUMBER PRIMARY KEY, text VACHAR2(80)); |
(2)将两个示例文档置入该表:
INSERT INTO docs VALUES (1,'the first doc'); INSERT INTO docs VALUES (2,'the second doc'); COMMIT; |
(3)使用Oracle Text Manager来创建和修改首选项,首选项将与索引相关联。
(4)使用Oracle Text Manager创建文本索引。另外,可以输入以下使用默认首选项的 SQL 语句:
CREATE INDEX doc_index ON docs(text) INDEXTYPE IS CTXSYS.CONTEXT; |
(5)使用 CONTAINS 函数,发出基于内容的文档查询。例如:
SELECT id FROM docs WHERE CONTAINS (text, 'first') > 0; |
这将在文本列包含单词 first (即文档1) 的 docs 中查找所有行。语句中的>0部分是有效的Oracle SQL所必需的,Oracle SQL不支持函数的布尔返回值。
以上只是一个简单的示例,旨在给出使用Oracle Text建立全文索引的完整步骤,归纳起来如下:
(1)建表并装载文本(包含带有需要检索的文本字段)
(2)配置索引
(3)建立索引
(4)发出查询
(5)索引维护:同步与优化(将在后面介绍)
3.文本装载
要实现文本的全文检索首先必须把正确的文本加载到数据库表中,默认的建立索引行为要求将文档装载在文本列中,尽管可以用其它方式 (包括文件系统和 URL 形式)存储文档 (在"数据存储"选项进行设置)。默认情况下,系统应该将文档装载在文本列中。文本列可以是VARCHAR2、CLOB、BLOB、CHAR或BFILE。注意,只有在将Oracle7系统移植到Oracle8的情况下才支持用LONG和LONG RAW 这两个相反的列类型存储文本。不能为列类型NCLOB、DATE和NUMBER建立索引。
关于文档格式,因为系统能为包括HTML、PDF、Microsoft Word和纯文本在内的大多数文档格式建立索引,可以将其中的任何文档类型装载到文本列中(在"过滤器"选项中设置)。有关所支持的文档格式的详细信息,可以参阅Oracle Text User's Guide and Reference 中的附录"Supported Filter Formats"。
装载方法主要有以下几种:
(1)SQL INSERT 语句
(2)ctxload 可执行文件
(3)SQL*Loader
(4)从 BFILE 中装载 LOB 的 DBMS_LOB.LOADFROMFILE() PL/SQL 过程
(5)Oracle Call Interface
最新相关文章
发表评论