欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle 11g Release 1 (11.1) Oracle 文本自定义 CONTEXT 索引的“偏好”

程序员文章站 2022-05-17 22:42:23
...

关于 Oracle 文本索引提供的存储过程我们知道 Oracle 文本索引有四种类型:CONTEXT、CTXCAT、CTXRULE 和 CTXXPATH。其中 CTXXPAT

本文内容

  • 关于 Oracle 文本索引提供的存储过程
  • 创建 Preferences
  • 创建 Section Groups 搜索节
  • 使用非索引字和非索引字列表
  • 关于 Oracle 文本索引提供的存储过程

    我们知道 Oracle 文本索引有四种类型:CONTEXT、CTXCAT、CTXRULE 和 CTXXPATH。其中 CTXXPATH 已标记废弃,在将来的 Oracle 版本会去掉。

    默认情况,系统期望你的文本存储在文本列中。这样,你就可以使用没有显示指定任何“偏好(preferences)”的 CREATE INDEX 创建一个文本索引,作为一个可扩展的 CONTEXT 索引类型。系统会自动检测你的语言、文本列的数据类型、文档格式和相应索引偏好的设置。

    所谓“偏好(preferences)”是你对文本索引的配置,类似 MS SQL Server 的“填充因子”。也就是说,在建立文本索引前,你可以先创建配置,再在创建文本索引时通过 parameter 子句使用。

    若创建一个 Oracle 文本索引:

  • 可选,确定你自定义索引的“偏好”、节组,或非索引字列表。下表描述这些索引类:
  • 描述

    Datastore

    你的文档如何存储

    Filter

    文档如何转换成纯文本

    Lexer

    索引的语言是什么

    Wordlist

    模糊和词干查询如何扩展

    Storage

    索引数据如何存储

    Stop List

    什么样的词或主题不用索引

    Section Group

    文档的节如何定义

  • 可选,你自定义索引的“偏好”、节组,或非索引字列表。
  • 用 CREATE INDEX 创建文本索引,命名你的索引,指定或不指定索引“偏好”。
  • 更多 Oracle 文本索引要素,包括 Datastore、Filter 、Lexer 、Wordlist、Storage、Section Group 、Classifier、Cluster、Stoplists、System-Defined Preferences 和 System Parameters。

    创建索引偏好

    你可以自定义文本索引的“偏好(preferences)”。使用“偏好”来指定索引信息,例如你的文件存储在哪里,你的文档如何过滤。创建“偏好”,并设置其属性。

    Datastore Examples

    本小节给出 direct、multi-column、URL 和 file 数据存储的例子。

  • 指定 DIRECT_DATASTORE
  • 本例创建一个表,其 CLOB 列存储文本数据。向该表填充两条数据,并使用系统预定义的 preference CTXSYS.DEFAULT_DATASTORE 索引该表,它使用 DIRECT_DATASTORE preference 类型。

    , docs clob); insert into mytable values(111555,'this text will be indexed');insert into mytable values(111556,'this is a default datastore example');commit; create index myindex on mytable(docs) indextype is ctxsys.context parameters ('DATASTORE CTXSYS.DEFAULT_DATASTORE');

  • 指定 MULTI_COLUMN_DATASTORE
  • 本例在三个串联和索引的列上,创建一个名为 "my_multi" 多列数据存储的 preference。

    beginctx_ddl.create_preference('my_multi', 'MULTI_COLUMN_DATASTORE');ctx_ddl.set_attribute('my_multi', 'columns', 'column1, column2, column3');end;

  • 指定 URL_DATASTORE URL 数据存储
  • 本例创建一个名为 "my_url" 的 URL_DATASTORE 偏好,并设置其属性 http_proxy、no_proxy 和 timeout。其中,timeout 属性为 300 秒。默认情况下,使用这些属性都没有设置。

    begin ctx_ddl.create_preference('my_url','URL_DATASTORE'); ctx_ddl.set_attribute('my_url','HTTP_PROXY','www-proxy.us.oracle.com'); ctx_ddl.set_attribute('my_url','NO_PROXY','us.oracle.com'); ctx_ddl.set_attribute('my_url','Timeout','300');end;

  • 指定 FILE_DATASTORE 文件数据存储
  • 本例使用 FILE_DATASTORE 创建一个数据存储的偏好。该属性告诉系统,,索引的文件位于操作系统。本例使用 CTX_DDL.SET_ATTRIBUTE 方法来设置 PATH 目录属性为 "/docs"。

    beginctx_ddl.create_preference('mypref', 'FILE_DATASTORE');ctx_ddl.set_attribute('mypref', 'PATH', '/docs'); end;

    Oracle 11g Release 1 (11.1) Oracle 文本自定义 CONTEXT 索引的“偏好”