您的当前位置:首页正文

Oracle11gRelease1(11.1)OracleText如何创建CONTEXT索引

2020-11-09 来源:意榕旅游网

假设用 SQL*Plus 已经创建了一个用户,并为该用户授权相应的角色和执行 CTX 包的权限。在此基础上,讨论 Oracle 全文检索中的 CO

本文内容

假设用 SQL*Plus 已经创建了一个用户,并为该用户授权相应的角色和执行 CTX 包的权限。在此基础上,讨论 Oracle 全文检索中的 CONTEXT 索引。

CONTEXT 索引很适合索引大文档,如 MS Word、HTML,或纯文本。你可以以很多种不同的方式自定义一个 CONTEXT 索引。文档必须被加载在一个文本表中。

  • CONTEXT 索引和 DML
  • CONTEXT 索引的默认行为
  • 演示索引 HTML 文档
  • 演示用 FILTER BY 和 ORDER BY 处理的查询创建 CONTEXT 索引
  • CONTEXT 索引的“偏好”
  • 修改记录
  • CONTEXT 索引和 DML

    CONTEXT 索引不是事务性的。

  • 当你删除记录时,索引的变化立刻反应出来。也就是说,从你删除记录那刻起,你的会话不能找到该记录。只要你提交,其他用户也将不能找到该记录。
  • 对于插入和更新,新的信息直到发生索引同步,,文本搜索才能看到。
  • 因此,当你执行插入或更新时,必须用 CTX_DDL.SYNC_INDEX 显示同步索引。

    示例1:演示用 2M 内部同步索引。

    beginctx_ddl.sync_index('myindex', '2M');end;

    示例2:演示用 2M 内存同步 part1 索引分区。

    beginctx_ddl.sync_index('myindex', '2M', 'part1');end;

    参看 。

    CONTEXT 索引的默认行为

    下面在 docs 表的 text 列上创建一个名为 myindex 默认 CONTEXT 索引:

    CREATE INDEX myindex ON docs(text) INDEXTYPE IS CTXSYS.CONTEXT;

    该 SQL 是创建 CONTEXT 索引的最简单形式,没有任何配置。因此,有必要了解 Oracle 数据库在此情况的默认行为。

    当使用 CREATE INDEX 没有显示指定参数时,系统对所有国家语言按如下默认动作:

  • 假设要索引的文本直接存储在 text 列。text 列可以是 CLOB、BLOB、BFILE、VARCHAR2 和 CHAR 类型。
  • 检查列的类型,并对 BLOB 和 BFILE 二进制列使用过滤。大部分文档格式都支持过滤。如果你的列是纯文本,那么系统不使用过滤。
  • 假设要索引的文本的语言是你安装数据库时指定的。
  • 使用你安装数据库时指定语言的默认“非索引字列表(stoplist )”。非索引字列表标识索引期间系统忽略的词。这是为了精简全文索引,去掉那些经常出现但对搜索没用的字符串。在索引创建期间,将忽略这些词。如,在英语中,诸如 "a"、"and"、"is" 和 "the" 之类的词;中文中,那些咿咿呀呀的语气词等。
  • 为你的语言启用模糊和词干查询。当然如果该功能在你的语言可用的话。
  • 你总是可以通过填充因子(Preferences)和参数(parameter )改变默认的索引行为。在参数里使用填充因子。
  • linux

    显示全文