网站大量收购独家精品文档,联系QQ:2885784924

(Oracle管理)oracle全文检索.pdf

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

(Oracle管理)oracle全

文检索

oracle全文检索

Oracle一直致力于全文检索技术的研究,当Oracle9iRlease2发布之时,Oracle数据库的

全文检索技术已经非常完美,OracleText使Oracle9i具备了强大的文本检索能力和智能化

的文本管理能力。OracleText是Oracle9i采用的新名称,在Oracle8/8i中它被称作

OracleinterMediaText,在Oracle8以前它的名称是OracleConTextCartridge。使用

Oracle9i和OracleText,可以方便而有效地利用标准的SQL工具来构建基于文本的新的开

发工具或对现有应用程序进行扩展。应用程序开发人员可以在任何使用文本的Oracle数据

库应用程序中充分利用OracleText搜索,应用范围可以是现有应用程序中可搜索的注释字

段,也可是实现涉及多种文档格式和复杂搜索标准的大型文档管理系统。OracleText支持

Oracle数据库所支持的大多数语言的基本全文搜索功能。本文将介绍如何使用Oracle9i的

全文检索技术来为自己的应用提供一个优秀的解决方案。

1OracleText的体系架构

下图是OracleText的体系架构。

图1OracleText的体系架构

以上面的体系架构图为基础,OracleText索引文档时所使用的主要逻辑步骤如下:

(1)数据存储逻辑搜索表的所有行,并读取列中的数据。通常,这只是列数据,但有些数

据存储使用列数据作为文档数据的指针。例如,URL_DATASTORE将列数据作为URL使用。

(2)过滤器提取文档数据并将其转换为文本表示方式。存储二进制文档(如Word或Acrobat

文件)时需要这样做。过滤器的输出不必是纯文本格式--它可以是XML或HTML之类的文本格

式。

(3)分段器提取过滤器的输出信息,并将其转换为纯文本。包括XML和HTML在内的不同文

本格式有不同的分段器。转换为纯文本涉及检测重要文档段标记、移去不可见的信息和文本

重新格式化。

(4)词法分析器提取分段器中的纯文本,并将其拆分为不连续的标记。既存在空白字符分

隔语言使用的词法分析器,也存在分段复杂的亚洲语言使用的专门词法分析器。

(5)索引引擎提取词法分析器中的所有标记、文档段在分段器中的偏移量以及被称为非索

引字的低信息含量字列表,并构建反向索引。倒排索引存储标记和含有这些标记的文档。

2简单的示例

这里先给出一个简单示例说利用OracleText实现全文检索的方法与步骤,在后面在进行具

体的说明。Orcale9i提供了OracleTextManager可以简化许多工作,所有在

OracleTextManager中完成的工作,都可以在通过PL/SQL来实现。要使用OracleText,必

须具有CTXAPP角色或者是CTXSYS用户。OracleText为系统管理员提供CTXSYS用户,为应

用程序开发人员提供CTXAPP角色。

CTXSYS用户可执行以下任务:启动OracleText服务器,执行CTXAPP角色的所有任务。

具有CTXAPP角色的用户可执行以下任务:创建索引,管理OracleText数据字典,包括创建

和删除首选项,进行OracleText查询,使用OracleTextPL/SQL程序包。

使用OracleText的步骤:

(1)创建表来保存某些文档。该示例使用一个主关键字列来标识每个文档,使用一个小的

VARCHAR2列来保存每个文档。

CREATETABLEdocs(idNUMBERPRIMARYKEY,textVACHAR2(80));

(2)将两个示例文档置入该表:

INSERTINTOdocsVALUES(1,thefirstdoc);

INSERTINTOdocsVALUES(2,theseconddoc);

COMMIT;

(3)使用OracleTextManager来创建和修改首选项,首选项将与索引相关联。

(4)使用OracleTextManager创建文本索引。另外,可以输入以下使用默认首选项的SQL

语句:

CREATEINDEXdoc_indexONdocs(text)INDEXTYPEISCTXSYS.CONTEXT;

(5)使用CONTAINS函数,发出

文档评论(0)

186****6581 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档