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

使用Oracle Text构建全文搜索应用程序

 2007-05-08 12:09:32 来源:WEB开发网   
核心提示: CONTAINS 运算符用于搜索 CONTEXT 索引,虽然 CONTAINS 运算符语法的确支持 soundex 匹配等更高级的功能,使用Oracle Text构建全文搜索应用程序(6),但在这些示例中,我们只用了简单的布尔运算符来合并关键字,如果您希望强制 Oracle Text 重新

CONTAINS 运算符用于搜索 CONTEXT 索引。虽然 CONTAINS 运算符语法的确支持 soundex 匹配等更高级的功能,但在这些示例中,我们只用了简单的布尔运算符来合并关键字。对于 Oracle Text 支持的语言,模糊匹配和词根还原都是默认启用的。要利用这些高级搜索功能,只需将 fuzzy() 或 $ 查询运算符分别与 CONTAINS 运算符结合使用即可。通配符字符可用于前缀和后缀匹配的 CONTAINS 查询。下面是一些简单的查询示例:

SELECT id FROM issues WHERE CONTAINS(ot_version, 'color AND pink', 1) > 0;
SELECT id FROM issues WHERE CONTAINS(ot_version, 'jane OR john', 1) > 0;

索引维护

由于基表数据是由索引复制的,因此这些数据需要定期与索引进行同步。在 CTX_DDL PL/SQL 程序包中可以发现索引维护过程。下面给出了一个示例,显示如何更新索引以反映基表更改:

EXECUTE ctx_ddl.sync_index('issue_index', '2M');

该同步过程为操作提供了索引名称和使用的内存量。也可以让数据库定期自动执行此项任务。您也可以选择使用操作系统或其他计划工具来启动同步。例如,在 Unix 系统上,可安排以下 shell 脚本与 Cron 作业,使系统按计划执行同步:

#!/bin/sh
export ORACLE_SID=orcl
export ORAENV_ASK=NO
source /usr/local/bin/oraenv
sqlplus ot1/ot1@XE > synch.log < 
WHENEVER SQLERROR EXIT 5;
EXECUTE ctx_ddl.sync_index('issue_index', '2M');
EOF

CTX_DDL 程序包还包含其他有用的过程,例如索引优化,用于消除索引碎片和清除过期的数据。

如果出现错误,可通过 CTX_USER_INDEX_ERRORS 视图跟踪索引错误。

数据库根据索引列更改跟踪文档的变更,因此,如果您希望强制 Oracle Text 重新为某些文档建立索引,可以更新相应行的索引列,如下所示:

UPDATE files SET path=path WHERE id = 4;

这将在同步索引时更新 id 为 4 的文件的索引关键字。

上一页  1 2 3 4 5 6 

Tags:使用 Oracle Text

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