`

如何使用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全文检索的实现

    Oracle数据库,作为业界领先的关系型数据库管理系统之一,自Oracle9i Release 2起便引入了强大的全文检索功能——Oracle Text。这一功能不仅提升了文本数据的检索效率,还拓展了文本管理的能力,使其成为企业级...

    oracle 全文检索实现

    Oracle 全文检索实现 Oracle 全文检索实现是通过 Lucene 实现的,全文检索是指在数据库中检索特定关键字的记录。这一实现的思路是将数据库中的记录对应索引文件中的一个文档,表主键直接存储在索引文件中,而非主键...

    Oracle全文检索技术详解

    从Oracle 7版本开始,Oracle就开始提供全文检索功能,起初名为Oracle ConText Cartridge,随后在Oracle 8/8i中称为Oracle interMedia,直至Oracle 9i正式命名为Oracle Text,并在后续版本中不断得到增强和优化,尤其...

    oracle全文检索.pdf

    此外,Oracle Text 还支持多种高级检索功能,如: - **模糊查找**:允许用户输入近似的词语来进行检索。 - **词干查找**:例如,搜索 "mice" 时,也会找到包含 "mouse" 的记录。 - **通配符搜索**:支持使用通配符...

    oracle全文检索

    Oracle全文检索技术是数据库管理系统Oracle中用于高效查找和分析文本数据的一种功能。它在不同的Oracle版本中有着不同的名称,如Oracle8.0.x中的ConText,Oracle8i中的interMedia Text,以及从Oracle9i开始的Oracle ...

    20081224-安装配置oracle全文检索

    4. 测试和优化:安装和配置完成后,应测试全文检索功能是否正常工作,然后根据实际使用情况进行调整和优化,例如调整索引策略、优化查询性能等。 总的来说,Oracle Text的安装和配置是一个涉及数据库安全、存储管理...

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

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

    如何更好的利用Oracle全文检索.docx

    2. 赋权:在CTXSYS用户下把CTX_DDL的执行权限赋于要使用全文索引的用户。 3. 设置词法分析器(lexer):Oracle提供了多种词法分析器,如basic_lexer、chinese_vgram_lexer和chinese_lexer等。不同的词法分析器适用于...

    Oracle的全文检索技术

    Oracle的全文检索技术是Oracle数据库系统中用于高效检索和管理大量文本信息的一种功能。随着Oracle9i Release2的发布,Oracle Text成为Oracle数据库的核心组成部分,提供了强大的文本检索和管理能力。Oracle Text...

    ORACLE 全文检索实例

    Oracle全文检索是一种强大的功能,它允许在数据库中的文本字段中进行复杂的搜索操作。在Oracle数据库中,全文检索主要依赖于Oracle Text组件,它提供了高级的文本分析和检索能力。以下是对Oracle全文检索实例的详细...

    oracle全文检索使用说明

    Oracle全文检索是一种强大的文本搜索工具,自Oracle 7.3版本开始引入,旨在帮助用户高效地在大量文本数据中进行查找操作。在Oracle 9i中,这一功能被称为Oracle Text,它被集成到标准版和企业版数据库中,无需额外...

    Oracle 全文检索应用

    Oracle 全文检索应用是Oracle数据库中的一项重要功能,它允许用户在大量文本数据中高效地查找相关信息。Oracle Text是Oracle 9i及更高版本中的组件,它提供了高级的全文检索和文本管理能力。Oracle Text的前身在...

    基于Oracle的文献资料库全文检索技术

    Oracle Text提供了超过二十个检索运算符,支持多语言文档检索、同义词检索等多种高级检索功能。 综上所述,模式匹配方法并不适合于文献资料库的全文检索需求。 ##### 与其它搜索引擎的比较 大多数搜索引擎都会为被...

    ORACLE 全文检索实例.rar

    Oracle的全文检索功能提供了高效、灵活且可定制的搜索体验,对于处理大量文本数据的企业和组织来说,尤其有价值。 首先,Oracle全文检索的基础是Oracle Text,这是Oracle数据库的一个组件,它支持对非结构化数据...

    ORACLE全文检索技术的应用及其优化的分析.pdf

    除了技术层面的优化外,Oracle数据库还提供了强大的用户界面和API接口,使得开发者可以更方便地将全文检索功能集成到应用程序中。开发者可以利用Oracle提供的PL/SQL、Java和.NET API等,根据需要编写自定义的全文...

    基于Lucene的Oracle数据库全文检索.pdf

    通过使用Lucene,可以对Oracle数据库中的数据建立索引,并提供快速的全文检索功能。 Lucene的优点在于其跨平台和简单易用等特点,已经吸引了众多的用户群体。 Lucene的架构提供了完整的查询引擎和索引引擎,部分...

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

    Oracle全文检索技术是一种在Oracle数据库中实现高效文本搜索的功能,主要应用于大数据量的文本信息查找。在Oracle 9i Release 2中,这项技术被称为Oracle Text。本文将详细介绍Oracle Text的安装与使用方法。 首先...

Global site tag (gtag.js) - Google Analytics