科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道用Oracle Text构建全文搜索应用程序(4)

用Oracle Text构建全文搜索应用程序(4)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Oracle Text 是一种功能强大的搜索技术,它内置于 Oracle 数据库的所有版本(包括免费提供的快捷版 (XE))中。它所提供的开发 API 使软件开发人员能够轻松实现功能齐备的内容搜索应用程序。

作者:changelive 来源:赛迪网技术社区 2007年9月5日

关键字: 搜索 数据库 ORACLE 程序

  • 评论
  • 分享微博
  • 分享邮件
搜索 .qYWP"XZ  
MN?at0T9a  
  CONTAINS 运算符用于搜索 CONTEXT 索引。虽然 CONTAINS 运算符语法的确支持 soundex 匹配等更高级的功能,但在这些示例中,我们只用了简单的布尔运算符来合并关键字。对于 Oracle Text 支持的语言,模糊匹配和词根还原都是默认启用的。要利用这些高级搜索功能,只需将 fuzzy() 或 $ 查询运算符分别与 CONTAINS 运算符结合使用即可。通配符字符可用于前缀和后缀匹配的 CONTAINS 查询。下面是一些简单的查询示例: !Q'_/sEKh  
4 ?cI_5{GB  
<lH{Ohk  
/J_^)/Wd*  
  SELECT id FROM issues WHERE CONTAINS(ot_version, 'color AND pink', 1) > 0; !Yjy4EN  
  SELECT id FROM issues WHERE CONTAINS(ot_version, 'jane OR john', 1) > 0; }7do- <' U  
-F y Sp,-  
4HT{gMk  
  索引维护 (Jr: FzY  
KLa,eq7  
  由于基表数据是由索引复制的,因此这些数据需要定期与索引进行同步。在 CTX_DDL PL/SQL 程序包中可以发现索引维护过程。下面给出了一个示例,显示如何更新索引以反映基表更改: c39:h`^?  
gV2+#  
  EXECUTE ctx_ddl.sync_index('issue_index', '2M'); b1 K|B/(  
:0t \U:5  
mjK'LE\m  
  该同步过程为操作提供了索引名称和使用的内存量。也可以让数据库定期自动执行此项任务。您也可以选择使用操作系统或其他计划工具来启动同步。例如,在 Unix 系统上,可安排以下 shell 脚本与 Cron 作业,使系统按计划执行同步: -pjx+jT%  
3| ;S:Q1  
  #!/bin/sh V38}9\shb  
  export ORACLE_SID=orcl t_d|Kx<7at  
  export ORAENV_ASK=NO qPwg;O4V  
  source /usr/local/bin/oraenv I{gL)U}  
  sqlplus ot1/ot1@XE > synch.log < Q@6sV&M  
  WHENEVER SQLERROR EXIT 5; $bC   
  EXECUTE ctx_ddl.sync_index('issue_index', '2M'); S9U"'A0{  
  EOF (U| H!T+  
lefu-/ByB  
'vcyVAe+  
  CTX_DDL 程序包还包含其他有用的过程,例如索引优化,用于消除索引碎片和清除过期的数据。 rvcP8Ke3!  
(?Xhs yR2  
  如果出现错误,可通过 CTX_USER_INDEX_ERRORS 视图跟踪索引错误。 *W#eb'H  
D+^Y"0r>l;  
  数据库根据索引列更改跟踪文档的变更,因此,如果您希望强制 Oracle Text 重新为某些文档建立索引,可以更新相应行的索引列,如下所示: 53&DnExf'  
/\sbJ "  
  UPDATE files SET path=path WHERE id = 4; f|73hx  
$7/wCE6 ZG  
dY2s[Z  
  这将在同步索引时更新 id 为 4 的文件的索引关键字。
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章