`

如何使用Oracle全文检索功能?

阅读更多

作者:eygle |English Version 【转载时请以超链接形式标明文章和作者信息及本声明
链接:本文简要说明全文检索功能的使用,不做太多的具体说明。
仅供参考使用方法。
1.授权
对具体使用全文检索的用户授权

$ sqlplus "/ as sysdba"

SQL*Plus: Release 9.2.0.4.0 - Production on Sun May 15 20:00:10 2005

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production

SQL> grant ctxapp to club;

Grant succeeded.


SQL> connect ctxsys/password
Connected.
SQL> grant execute on ctx_ddl to club;

Grant succeeded.

2.使用应用用户连接
创建域索引
SQL> connect club/password
Connected.

SQL> begin ctx_ddl.create_preference('club_lexer','chinese_vgram_lexer'); end;
  2  /

PL/SQL procedure successfully completed.

Elapsed: 00:00:00.03

SQL> create index id_cont_msg 
  2  on jivemessage ( SUBJECT ) indextype is ctxsys.context parameters('lexer club_lexer'); 

Index created.

Elapsed: 00:01:22.42

SQL> select count(*) from jivemessage where contains(subject,'幸福')>0;

  COUNT(*)
----------
      1847

Elapsed: 00:00:00.17
SQL> select count(*) from jivemessage where subject like '%幸福%';

  COUNT(*)
----------
      1841

Elapsed: 00:00:02.89

3.检索比较
以下是一个全文检索的示例,我们检索'abc',那么全文检索可以把包含'abc'的任何变化组合都查询出来,包括大小写、全半角,而如果用单纯的SQL实现同样的结果,则需要多次like之后union all,其性能差距是不可想象的。
全文检索在类似文本模糊查询上具有极大的优势。当然也可能存在问题,即词法分析器是否准确,会否漏掉部分内容等。
总的说来,满足需求的技术就是好的技术,是否使用一项技术应该通过实践来检验.<br>
SQL> select subject from jivemessage where contains(subject,'abc') >0;

SUBJECT
--------------------------------------------------------------------------------
【游戏】 把你的名字的首字母用智能ABC打出,看能出来什么?
游戏——把你的名字首字母用智能ABC打出来
智能ABC暗藏杀机
ABC
ABC
ABC
ABC
ABC
ABC
哈哇abc
abc

SUBJECT
--------------------------------------------------------------------------------
abc
ABC
振奋爱的激情方案ABC
智能ABC的错吗?
ABC全选
瓜果美容ABC
经典英文歌曲ABC,不好你拿版砖砍我,好就回帖顶一下!
初夜abc
Re: abc
Re: abc
Re: abc

SUBJECT
--------------------------------------------------------------------------------
abc
测试发贴""abc
abc

25 rows selected.

Elapsed: 00:00:00.04

3.定时优化同步域索引 
创建定时任务,定期优化和同步域索引
SQL> create or replace procedure hsp_sync_index as
  2  begin
  3  ctx_ddl.sync_index('id_cont_msg');
  4  end;
  5  /

Procedure created.

Elapsed: 00:00:00.08
SQL> VARIABLE jobno number;  
SQL> BEGIN
   2 DBMS_JOB.SUBMIT(:jobno,'hsp_sync_index();',  
   3 SYSDATE, 'SYSDATE + (1/24/4)');  
   4 commit;  
   5 END;  
   6 /

PL/SQL procedure successfully completed.

Elapsed: 00:00:00.27
SQL> create or replace procedure hsp_optimize_index as
  2  begin
  3  ctx_ddl.optimize_index('id_cont_msg','FULL');
  4  end;
  5  /

SQL> VARIABLE jobno number;  
SQL> BEGIN
   2 DBMS_JOB.SUBMIT(:jobno,'hsp_optimize_index();',  
   3 SYSDATE, 'SYSDATE + 1');  
   4 commit; 
   5 END;
   6 /
Procedure created.

Elapsed: 00:00:00.03

PL/SQL procedure successfully completed.

Elapsed: 00:00:00.02
SQL> 

分享到:
评论

相关推荐

    oracle全文检索.pdf

    Oracle Text 使Oracle9i 具备了强大的文本检索能力和智能化的文本管理能力,Oracle Text 是Oracle9i 采用的新名称,在oracle8/8i 中被称为oracle intermedia text,oracle8 以前是 oracle context cartridge。Oracle...

    oracle 全文检索 全文索引 多列字段索引

    oracle 全文检索 oracle全文索引 多列字段检索,匹配多列字段搜索功能。

    基于ORACLE数据库的全文检索技术的安装和使用方法

    文中主要讲述了ORACLE全文检索技术的安装和使用方法,方法非常简单,进行简单的试用也不存在问题,但是性能测试方面不是很理想,但是由于同我们目前的系统软件架构相符合,在目前的功能中应用应当不存在技术和性能...

    Oracle9i的全文检索技术

    Oracle一直致力于全文检索技术的研究,当Oracle9i Rlease2发布之时,Oracle数据库的全文检索技术已经非常完美,Oracle Text使Oracle9i具备了强大的文本检索能力和智能化的文本管理能力。Oracle Text是Oracle9i采用的...

    Oracle全文检索.rar

    Oracle Text 使Oracle9i 具备了强大的文本检索能力和智能化的文本管理能力,Oracle Text 是Oracle9i 采用的新名称,在oracle8/8i 中被称为oracle intermedia text,oracle8 以前是oracle context cartridge。Oracle ...

    Oracle 9i的全文检索技术

    使用Oracle9i和Oracle Text,可以方便而有效地利用标准的SQL工具来构建基于文本的新的开发工具或对现有应用程序进行扩展。...本文将介绍如何使用Oracle9i的全文检索技术来为自己的应用提供一个优秀的 解决方案。

    oracle全文检索

    oracle全文检索功能详细说明以及配置,能快速构建BLOB字段的检索,用于企业级开发应用!

    在Unix服务器上设置Oracle全文检索 (1)

    目前全文检索功能几乎所有主流数据库都支持。Oracle 的全文检索建立和维护索引都要快得多,本文在HP UX, Soralis 上面设置了Oracle Intermedia来实现全文检索。

    在Unix服务器上设置Oracle全文检索 (2)

    目前全文检索功能几乎所有主流数据库都支持。本文在HP UX, Soralis 上面设置了Oracle Intermedia来实现全文检索。依据的是Oracle 8.1.6 和8.1.7两个版本,不能保证适用于其他版本。

    Oracle9i的全文检索技术开发者网络Oracle

    &gt;&gt; 摘要 全文检索技术是智能信息管理的关键技术之一,Oracle Text作为Oracle9i的一个组件,提供了强大的全文检索功能,用Oracle9i做后台数据库,就可以充分利用其全文检索技术,构建复杂的大型文档管理系统。...

    oracle text全文检索的开发和相关文档

    是oracle text developer 和preference的中文版本,大家可以通过这个文档快速了解oracle text的一些使用和功能特点。

    用Oracle并行查询发挥多CPU的威力

    Oracle跟上了硬件发展的步伐,提供了很多面向多CPU的功能。从Oracle8i开始,Oracle在每个数据库函数中都实现了并行性,包括SQL访问(全表检索)、并行数据操作和并行恢复。对于Oracle专业版的挑战是为用户的数据库...

    oracle报表培训教材

    Oracle Reports是Oracle 关系数据库系统提供的一个功能强大、易于使用的报表定义工具软件,它用于开发、显示和打印结果报表。使用Oracle Reports的应用开发人员应当熟悉SQL和PL/SQL。 Oracle Reports的应用分为两步...

    新华社多媒体数据库搜索引擎服务项目方案

    新华社多媒体数据库底层采用TRS 和Oracle 协同工作的解决方式,由TRS 完成千万级数据的索引检索服务,由Oracle 完成信息制作流程,检索方式分为...提供中英文全文检索功能,中文按词进行全文检索,具有智能词库机制。

    Oracle database 11g SQL 开发指南 part2

    完全涵盖了最新版本Oracle数据库的功能和技术,指导读者编写SQL语句以检索和修改数据库中的信息、掌握SQL*Plus和SQL Developer、处理数据库对象、编写PL/SQL程序、采用性能优化技术、结合XML以及其他技术。...

    Oracle database 11g SQL开发指南 part1

    完全涵盖了最新版本Oracle数据库的功能和技术,指导读者编写SQL语句以检索和修改数据库中的信息、掌握SQL*Plus和SQL Developer、处理数据库对象、编写PL/SQL程序、采用性能优化技术、结合XML以及其他技术。...

    Oracle database 11g SQL开发指南 part4

    完全涵盖了最新版本Oracle数据库的功能和技术,指导读者编写SQL语句以检索和修改数据库中的信息、掌握SQL*Plus和SQL Developer、处理数据库对象、编写PL/SQL程序、采用性能优化技术、结合XML以及其他技术。...

    青云oracle工具

    但是这个动作会经常遗忘, 所以我这里加了一个检索并修正无效对象的功能; 8.可以对共享区进行监控,了解那些是不好的SQL以及执行计划; 9.可以在“裸机”上连接数据库,也就是可以无需安装oracle客户端;

    Navicat for Oracle 10.1.7

    它可以在Oracle数据库8i以上的版本中运行,并且支持大部份最新的Oracle功能,包括目录、数据表空间、同义词、物化检索、触发器、序列及类型等。Navicat的的功能不仅可以满足专业开发人员的所有需求,而且对Oracle的...

    OracleDbTools.rar 青云oracle超人性化工具

    软件用着非常好.感谢作者. 青云oracle超人性化工具 V2.1(注:这是作者的说明) oracle 的常见第三方工具主要是:toad ,PLSQL Developer,...但是这个动作会经常遗忘, 所以我这里加了一个检索并修正无效对象的功能;

Global site tag (gtag.js) - Google Analytics