欢迎来到天天文库
浏览记录
ID:38581361
大小:70.50 KB
页数:8页
时间:2019-06-15
《Oracle的全文检索技术》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、欢迎交流:wsf111@sina.com或seer@vip.163.comOracle的全文检索技术Oracle一直致力于全文检索技术的研究,当Oracle9iRlease2发布之时,Oracle数据库的全文检索技术已经非常完美,OracleText使Oracle9i具备了强大的文本检索能力和智能化的文本管理能力。OracleText是Oracle9i采用的新名称,在Oracle8/8i中它被称作OracleinterMediaText。使用OracleText,可以方便而有效地利用标准的SQL工
2、具来构建基于文本的新的开发工具或对现有应用程序进行扩展。应用程序开发人员可以在任何使用文本的Oracle数据库应用程序中充分利用OracleText搜索,应用范围可以是现有应用程序中可搜索的注释字段,也可是实现涉及多种文档格式和复杂搜索标准的大型文档管理系统。OracleText支持Oracle数据库所支持的大多数语言的基本全文搜索功能。虽然大多数大型数据库都支持全文检索,但Oracle在这方面无疑是最出色的。Oracle能搜索多种格式的文档,如Word,Execl,PowerPoint,Html
3、,PDF等等。但在使用中也发现有遗憾的地方,OracleText无论使用何种过滤器(INSO_FILTER或NULL_FILTER)及何种词法分析器(BASIC_LEXER,CHINESE_VGRAM_LEXER还是CHINESE_LEXER)都不能检索出中文内容的文本文档(TXT,RTF)。1OracleText的体系架构下图是OracleText的体系架构:图1OracleText的体系架构OracleText索引文档时所使用的主要逻辑步骤如下: (1)数据存储逻辑搜索表的所有行,并读取列中
4、的数据。通常,这只是列数据,但有些数据存储使用列数据作为文档数据的指针。例如,URL_DATASTORE将列数据作为URL使用。如果对本地文件进行检索,只要指定DATASTORE中FILE_DATASTORE参数为文件的路径即可。欢迎交流:wsf111@sina.com或seer@vip.163.com (2)过滤器提取文档数据并将其转换为文本表示方式。存储二进制文档(如Word或Acrobat文件)时需要这样做。过滤器的输出不必是纯文本格式--它可以是XML或HTML之类的文本格式。 (3)
5、分段器提取过滤器的输出信息,并将其转换为纯文本。包括XML和HTML在内的不同文本格式有不同的分段器。转换为纯文本涉及检测重要文档段标记、移去不可见的信息和文本重新格式化。 (4)词法分析器提取分段器中的纯文本,并将其拆分为不连续的标记。既存在空白字符分隔语言使用的词法分析器,也存在分段复杂的亚洲语言使用的专门词法分析器。 (5)索引引擎提取词法分析器中的所有标记、文档段在分段器中的偏移量以及被称为非索引字的低信息含量字列表,并构建反向索引。倒排索引存储标记和含有这些标记的文档。归纳起来如下:
6、 (1)建表并装载文本(包含带有需要检索的文本字段) (2)配置索引 (3)建立索引 (4)发出查询 (5)索引维护:同步与优化(将在后面介绍)u文本装载 要实现文本的全文检索首先必须把正确的文本加载到数据库表中,默认的建立索引行为要求将文档装载在文本列中,尽管可以用其它方式(包括文件系统和URL形式)存储文档(在"数据存储"选项进行设置)。默认情况下,系统应该将文档装载在文本列中。文本列可以是VARCHAR2、CLOB、BLOB、CHAR或BFILE。注意,只有在将Oracle7系统
7、移植到Oracle8的情况下才支持用LONG和LONGRAW这两个相反的列类型存储文本。不能为列类型NCLOB、DATE和NUMBER建立索引。 关于文档格式,因为系统能为包括HTML、PDF、MicrosoftWord和纯文本在内的大多数文档格式建立索引,可以将其中的任何文档类型装载到文本列中(在"过滤器"选项中设置)。有关所支持的文档格式的详细信息,可以参阅OracleTextUser'sGuideandReference中的附录"SupportedFilterFormats"。 装载方法
8、主要有以下几种:欢迎交流:wsf111@sina.com或seer@vip.163.com (1)SQLINSERT语句 (2)ctxload可执行文件 (3)SQL*Loader (4)从BFILE中装载LOB的DBMS_LOB.LOADFROMFILE()PL/SQL过程 (5)OracleCallInterfaceu建立索引 文本装入文本列后,就可以创建OracleText索引。文档以许多不同方案、格式和语言存储。因此,每个OracleText索引有许多需要设置的
此文档下载收益归作者所有