您的当前位置:首页正文

Oracle11gRelease1(11.1)Oracle文本自定义CONTEXT索引的“偏好”

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

关于 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;

    linux

    显示全文