ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORACLE9.2里面创建全文索引--(1)

ORACLE9.2里面创建全文索引--(1)

原创 Linux操作系统 作者:bpmfhu 时间:2019-07-01 07:06:04 0 删除 编辑
  用Oracle9i和Oracle Text,可以方便而有效地利用标准的SQL工具来构建基于文本的新的开发工具或对现有应用程序进行扩展。应用程序开发人员可以在任何使用文本的Oracle数据库应用程序中充分利用Oracle Text搜索,应用范围可以是现有应用程序中可搜索的注释字段,也可是实现涉及多种文档格式和复杂搜索标准的大型文档管理系统。Oracle Text支持Oracle数据库所支持的大多数语言的基本全文搜索功能。

(1)数据存储逻辑搜索表的所有行,并读取列中的数据。通常,这只是列数据,但有些数据存储使用列数据作为文档数据的指针。例如,URL_DATASTORE 将列数据作为 URL 使用。

(2)过滤器提取文档数据并将其转换为文本表示方式。存储二进制文档 (如 Word 或 Acrobat 文件) 时需要这样做。过滤器的输出不必是纯文本格式 -- 它可以是 XML 或 HTML 之类的文本格式。

(3)分段器提取过滤器的输出信息,并将其转换为纯文本。包括 XML 和 HTML 在内的不同文本格式有不同的分段器。转换为纯文本涉及检测重要文档段标记、移去不可见的信息和文本重新格式化。

(4)词法分析器提取分段器中的纯文本,并将其拆分为不连续的标记。既存在空白字符分隔语言使用的词法分析器,也存在分段复杂的亚洲语言使用的专门词法分析器。

(5)索引引擎提取词法分析器中的所有标记、文档段在分段器中的偏移量以及被称为非索引字的低信息含量字列表,并构建反向索引。倒排索引存储标记和含有这些标记的文档。

我的测试环境P650+AIX5.1里面对将近有70多万纪录的大表(TEXT字段)创建全文索引,一般需要16分钟左右:

ctx_ddl.create_preference('CNDY_ED.', 'CHINESE_LEXER');
上面这个函数第一个参数为“当前用户名.”


CREATE INDEX CIDX_IMAGE_TITLE
    ON IMAGE(TITLE) INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS
    (' MEMORY 50M LEXER CHINESE_LEXER')

CREATE INDEX CIDX_IMAGE_SUMMARY
    ON IMAGE(SUMMARY) INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS
    (' MEMORY 50M LEXER CHINESE_LEXER')
   
CREATE INDEX CIDX_STORY_TITLE
    ON IMAGE(TITLE) INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS
    (' MEMORY 50M LEXER CHINESE_LEXER')
   
CREATE INDEX CIDX_STORY_SUMMARY
    ON IMAGE(SUMMARY) INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS
    (' MEMORY 50M LEXER CHINESE_LEXER')

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/4096/viewspace-52442/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 学习遇到瓶颈
请登录后发表评论 登录
全部评论

注册时间:2001-12-26

  • 博文量
    237
  • 访问量
    153351