CREATE INDEX

此命令对文本列创建全文本索引以供在 DB2 Net Search Extender 全文本查询中使用。

在分布式 DB2 环境中,全文本索引是对在其上定义用户表的表空间的每个分区创建的。不允许对表空间的分布进行后续更改,这将导致在执行管理命令和搜索过程中产生意外行为。

权限

根据 DB2 目录视图,此命令中的用户标识必须对在其中创建全文本索引的表具有 CONTROL 特权。

命令语法

阅读语法图跳过直观语法图>>-CREATE-INDEX--+------------------+--index-name FOR TEXT------>
                 '-index-schema-"."-'

>--ON--+------------------+--table-name------------------------->
       '-table-schema-"."-'

>--+-(text-column-name)--------------------------------------------+-->
   '-+-----------------------+--function-name-(-text-column-name-)-'
     '-|function-schema "."|-'

>--+------------------+--+----------------------------+--------->
   '-|attribute-list|-'  '-|text-default-information|-'

>--+--------------------------+--+-------------------+---------->
   '-|update-characteristics|-'  '-|storage-options|-'

>--+-------------------------------+---------------------------->
   '-|cache-search-result-options|-'

>--+-------------------------------+---------------------------->
   '-|index-configuration-options|-'

>--+----------------------+------------------------------------><
   '-|connection-options|-'

attribute list:

                  .-','------------------------------------------.
                  V                                              |
|--ATTRIBUTES--(----SQL-column-expression--+-------------------+-+--)--|
                                           '-AS-attribute-name-'

text-default-information:

|--+--------------+--+--------------------+--------------------->
   '-CCSID--ccsid-'  '-LANGUAGE--language-'

>--+-----------------------------------------+------------------|
   '-FORMAT--format--+---------------------+-'
                     '-|model-information|-'

model-information:

|--DOCUMENTMODEL--documentmodel-name--IN--modelfilepath--------->

>--+--------------------+---------------------------------------|
   '-USING-CCSID--ccsid-'

update-characteristics:

|--+------------------------------------------+----------------->
   '-UPDATE-FREQUENCY--+-NONE---------------+-'
                       '-|update-frequency|-'

>--+-|incremental-update-characteristics|-+---------------------|
   '-RECREATE INDEX ON UPDATE-------------'

incremental-update-characteristics:

|--+----------------------------+------------------------------->
   '-UPDATE-MINIMUM--minchanges-'

>--+---------------------------+-------------------------------->
   '-REORGANIZE--+-AUTOMATIC-+-'
                 '-MANUAL----'

>--+---------------------------------+--------------------------|
   +-COMMITCOUNT-FOR-UPDATE--count---+
   '-|capture-table-characteristics|-'

capture-table-characteristics:

|--REPLICATION-CAPTURE-TABLE------------------------------------>

>--+--------------------------+--capture-table-name------------->
   '-capture-table-schema-"."-'

>--CONTROL TABLE SCHEMA--capture-control-schema-----------------|

update-frequency:

|--D--(--+-*-------+--)--H--(--+-*--------+--)--M--------------->
         | .-,---. |           | .-,----. |
         | V     | |           | V      | |
         '---0...6-+-'           '---0...23-+-'

      .-,----.
      V      |
>--(----0...59-+--)-----------------------------------------------|

storage-options:

|--+----------------------------+------------------------------->
   '-INDEX-DIRECTORY--directory-'

>--+-------------------------------+---------------------------->
   '-WORK-DIRECTORY--workdirectory-'

>--+-------------------------------------------+----------------|
   '-ADMINISTRATION-TABLES-IN--tablespace-name-'

cache-search-results-options:

|--CACHE TABLE-------------------------------------------------->

      .-','-------------------------------------------.
      V                                               |
>--(----SQL-column-expression--+--------------------+-+--)------>
                               '-AS--attribute-name-'

>--+-------------------------------+--+---------------------+--->
   +-PERSISTENT--+---------------+-+  '-PCTFREE--percentage-'
   |             '-IN--directory-' |
   '-TEMPORARY---------------------'

>--MAXIMUM CACHE SIZE--memsize---------------------------------->

>--+------------------------------------------------------+----->
   '-INITIAL SEARCH RESULT ORDER--(--SQL-order-by-list--)-'

>--+------------------------------------------------------+-----|
   '-KEY COLUMNS FOR INDEX ON VIEW--(SQL-columnname-list)-'

index-configuration-options:

                           .-,------------.
                           V              |
|--INDEX CONFIGURATION--(----option-value-+--)------------------|

connection-options:

|--CONNECT-TO--database-name--+-------------------------------+--|
                              '-USER--userid--USING--password-'

命令参数

index schema
文本索引的模式。将该模式用作特定于索引的管理表的 DB2 模式名。如果没有指定任何模式,则使用 DB2 连接的用户标识。注意,索引模式必须是有效的 DB2 模式名。
index name
索引的名称。它与索引模式一起用来唯一地标识数据库中的全文本索引。它还用作索引事件表的名称。

有关详细信息,请参阅附录C. Net Search Extender 信息目录。注意,索引名必须是有效的 DB2 索引名。

table schema
为其创建索引的表、昵称或视图的模式。如果没有指定任何模式,则使用 DB2 连接的用户标识。
table name
在已连接的数据库中包含为其创建了全文本索引的列的文本表、昵称或视图的名称。

注意,当表名不是指 DB2 基本表时,具有下列限制:

  • 视图只允许进行存储过程或表值函数搜索。因此,必须使用 KEY COLUMNS FOR INDEX ON VIEW 子句指定索引或视图的键列。
  • 对于对不具有捕获表的昵称的增量索引更新,会创建一个日志表。如果对昵称表或视图中的数据进行任何更改,则必须手工填写日志表。对于基本表,此操作是自动完成的,因此用户一定不能修改日志表。有关日志表的布局,请参阅附录C. Net Search Extender 信息目录
  • 只有基本表或昵称而不是视图的索引才允许 DB2 谓词 CONTAINSSCORENUMBEROFMATCHES
  • 仅当您在命令中指定 cache-search-result 选项时才允许视图的索引。
text-column-name
包含用于创建全文本索引的文本的列名。一列必须属于下列类型的其中一种类型:
  • CHAR(对于位数据)
  • VARCHAR(对于位数据)
  • LONG VARCHAR(对于位数据)
  • CLOB
  • DBCLOB
  • BLOB
  • GRAPHIC
  • VARGRAPHIC
  • LONG VARGRAPHIC
  • DATALINK
如果列类型不属于以上任何类型,则使用 function-schema.function-name 指定变换函数用来转换列类型。

注意,如果使用 Data Link 列,则一定会访存引用的内容用来建立索引。这是通过作为 Data Link 值的一部分的协议(例如,Http)来实现的。当使用除了“file”或“unc”之外的协议时,确保服务器支持作为 Data Link 值的一部分的这些协议。由于获取文件内容可能需要代理服务器,因此,数据库管理员可以在创建索引之前在 DB2EXT.PROXYINFORMATION 表中指定它们。

注意,允许具有相同列的几个索引,但是,只有满足下列条件时才允许:

索引是对视图创建的
因此,不能在 CONTAINSSCORENUMBEROFMATCHES 搜索自变量中使用索引。
索引是对表创建的
如果所有索引都是同步的,则它们在下列 CREATE INDEX 命令详细信息中同一个列上具有完全相同的属性:
  • Function name and schema
  • ATTRIBUTES
  • CCSID
  • LANGUAGE
  • FORMAT
  • DOCUMENTMODEL
  • INDEX CONFIGURATION
因此,CONTAINSSCORENUMBEROFMATCHES 自变量选择哪个索引并不重要。
function-schema.function-name
用来存取在具有不受支持类型的一列中的文本文档的用户定义的函数的模式和名称。该函数使用任意列类型的一个输入参数来执行列类型转换。它返回 Net Search Extender 支持的其中一种类型的值。
ATTRIBUTES (SQL-column-expression AS Attribute-name, ...)
确保除了文本列之外还对列表达式的内容建立了索引。也可以通过搜索语句中的 ATTRIBUTE 子句来搜索此内容。必须使用对其创建索引的表的非限定列名来定义 SQL 列表达式。唯一允许的数据类型为双精度型。可以在列表达式中使用强制类型转型运算符,但是,不可能进行 DB2 的隐式数据类型转换。属性名必须遵循文档模型中的属性名的规则,并且必须与索引模型定义文件中的属性名不同。

通过使用下列规则来确定表达式的属性名:

  • 如果在列表达式中由 SQL AS 子句显式命名,则使用指定的名称。一个示例是:ATTRIBUTES (C1+C2 AS myname)
  • 如果不带 AS 使用指定表的列,则使用该列的名称。例如:CACHE TABLE (C1)
  • 如果不带 AS 使用表达式,并且表达式不引用已命名的列,则 CREATE INDEX 会报告错误。

例如:ATTRIBUTES (CAST(JULIAN_DAY(date) AS DOUBLE) as day, (price1+price2)/2 as avg_price)

注意:不带引号的属性将映射为大写,并且必须在搜索期间以此方式指定。

CCSID ccsid
当对文本文档建立索引时,使用“编码字符集标识”。缺省值来自 DB2EXT.DBDEFAULTS 视图,其中 DEFAULTNAME='CCSID'。
LANGUAGE language
有关列表,请参阅附录E. 受支持的语言。缺省值来自 DB2EXT.DBDEFAULTS 视图,其中 DEFAULTNAME='LANGUAGE'。
FORMAT format
一列中的文本文档的格式,例如,HTML。此信息对于为文档建立索引是必需的。有关结构化文档支持的文档格式的列表,请参阅文档格式和受支持的代码页

对于结构化文档格式,可以在文档模型文件中指定信息。如果没有指定任何文档模型,则使用缺省文档模型来对文档的文本建立索引。请参阅文档模型

如果没有指定格式关键字,则缺省值来自 DB2EXT.DBDEFAULTS 视图,其中 DEFAULTNAME='FORMAT'。

DOCUMENTMODEL documentmodel-name IN modelfilepath
modelfilepath 指定模型文件的位置。这包含 FORMAT 子句中的格式的模型定义。DB2 实例所有者必须可以读取它。文档模型使您能够对文档的特定部分建立索引和进行搜索。可以在文档模型中定义标记(markup tag)和节名。将文档模型绑定至支持 HTML、XML 或 GPP 结构的文档格式。在一个模型文件中只能指定一种文档模型。

由于在搜索条件中不需要引用文档模型,因此,使用模型文件中的所有节名。有关文档模型的详细信息,请参阅使用结构化文档。注意,由于只有在执行 CREATE INDEX 命令期间才读取文档模型,因此,不能识别此索引的任何后续更改。

注意,在分布式 DB2 环境中,使用共享文件系统来确保在每个节点上都能够存取 modelfilepath

USING CCSID ccsid
指定 CCSID 来解释模型文件的内容。缺省值来自 DB2EXT.DBDEFAULTS 视图,其中 DEFAULTNAME='MODELCCSID'。
UPDATE FREQUENCY
索引更新频率确定何时进行更新。如果对用户表的更改数小于由 UPDATE MINIMUM 选项指定的更改数,则不会更新索引。如果不指定 UPDATE FREQUENCY,则使用缺省值 NONE,以便不再进行任何索引更新。这在将不对文本列进行任何更改时很有用。
  • D. 在星期几更新索引:*(每天)或 0..6(0 = 星期天)
  • H. 在几点钟更新索引:*(每小时)或 0..23
  • M. 在多少分钟更新索引:0..59
  • NONE. 不再执行进一步的索引更新。必须手工启动更新。
缺省值来自 DB2EXT.DBDEFAULTS 视图,其中 DEFAULTNAME='UPDATEFREQUENCY'。
UPDATE MINIMUM minchanges
在 UPDATE FREQUENCY 自动更新索引之前允许对文本文档进行的最小更改数。允许正整数值。缺省值取自 DB2EXT.DBDEFAULTS 视图,其中 DEFAULTNAME='UPDATEMINIMUM'。

注意,在 DB2TEXT UPDATE 命令中会忽略此值。此选项不能与 RECREATE INDEX ON UPDATE 选项配合使用,原因是没有日志表和增量更新的触发器,更改数不可用。

对于分布式数据库,对每个节点检查 UPDATE MINIMUM。

REORGANIZE AUTOMATIC/MANUAL
如果指定了 REORGANIZE AUTOMATIC,则使用更新频率执行的更新将只识别索引。此步骤是在更新之后根据 select REORGSUGGESTED from DB2EXT.TEXTINDEXES 的值自动完成的。

只能使用手工 UPDATE 命令并通过使用 REORGANIZE 选项来执行 REORGANIZE MANUAL。

如果省略 REORGANIZE 子句,则缺省值取自 DB2EXT.DBDEFAULTS 视图,其中 DEFAULTNAME='AUTOMATICREORG'。

有关 REORGANIZE 选项的进一步信息,请参阅UPDATE INDEX

REPLICATION CAPTURE TABLE capture-table-schema.capture-table-name CONTROL TABLE SCHEMA capture-control-schema
对于增量更新处理,采用指定的复制捕获表而不是通常为索引创建的日志表。 因此,schemanametablename 和复制捕获表名与本地 DB2(联合)数据库中的对象相关。

capture-control-schema 是复制控制表的模式名,例如,本地 DB2 上的 IBMSNAP_PRUNE_SET。在设置了复制之后,复制控制表必须可用作本地 DB2 系统上的昵称。

至少,必须具有可用于下列捕获控制表的昵称:

  • IBMSNAP_SIGNAL
  • IBMSNAP_PRUNE_SET
  • IBMSNAP_PRUNCNTL
  • IBMSNAP_REGISTER
  • IBMSNAP_REG_SYNC(仅适用于非 DB2 远程源)

由于“DB2 复制中心”不会自动保证为远程捕获表和捕获控制表创建本地昵称, 因此,可能需要手工创建。该任务类似于为要对其创建文本索引的表创建昵称。

用户表昵称与捕获表昵称中的主键列的列名必须匹配。另外,一定不能更改捕获表昵称中的 IBMSNAP_OPERATION、IBMSNAP_COMMITSEQ 和 IBMSNAP_INTENTSEQ 列的名称。

创建索引之后,列名 DB2EXT.TEXTINDEXES(LOGVIEWNAME) 和 DB2EXT.TEXTINDEXES(LOGVIEWSCHEMA) 都表示复制捕获表的局部名。

由于 Net Search Extender 并不需要“DB2 复制中心”的所有功能,所以“更改数据”(CD)表或“一致更改数据”(CCD)表必须遵守下列规则:

  • 使用更改捕获注册但不使用完全刷新复制选项。
  • 不允许捕获更改的任何水平子集。例如,通过触发器。请参阅《DB2 复制指南和参考版本 8》 的第六章『在复制环境中对数据划分子集』。
  • 仅当包括主键列、文本列和 DB2TEXT CREATE INDEX 命令的属性和高速缓存表表达式中涉及到的所有列时,才允许注册列子集的更改。
  • 主键列必须包括在捕获表中。注意,后映像是足够的。
  • 一定不能压缩捕获表。对于每个主键,必须具有一个条目具有最新数据。但是,DB2 Net Search Extender 要求所有历史都可用。
  • 表必须使用 D/I 选项。这使得能够将对源表上的主键的更新变换成插入/删除对。

其它先决条件包括:

  • 对其创建索引的源表的服务器类型和版本是下列各项的其中一项:
    • DB2/AIX V8.1 或更新版本
    • DB2/NT V8.1 或更新版本
    • DB2/HP V8.1 或更新版本
    • DB2/LINUX V8.1 或更新版本
    • DB2/SUN V8.1 或更新版本
    • DB2 z/OS(R) V7.2 或更新版本
    • DB2 OS/400(R) V5.2 或更新版本
    • Informix(R) IDS 9.3
    • ORACLE 9i
    • SYBASE ASE 12.5
    • Microsoft SQL Server 2000
  • 受支持的包装器包括:
    • DB2:DRDA(R)
    • Informix:Informix
    • ORACLE:NET8 和(SQLNET)
    • SYBASE:CTLIB
    • MSSQLSERVER:MSSQLODBC3
注意事项和限制

确保将正确的源表名插入到注册表中。视远程 DBMS 的类型不同,必须使用远程表名或本地昵称:

  • DB2:远程表名(远程服务器上的表名)
  • 非 DB2:本地昵称(联合 DB2 数据库中的相应昵称)

必须存在用户映射本地用户才能通过昵称来存取远程数据源,而远程用户必须对表具有 CONTROL 特权。

如果 DB2 实例所有者用户标识不同于本地用户标识,则需要实例所有者用户标识的附加用户映射。

指定的基本表名一定不能是昵称的视图。这是因为视图可建立在若干个昵称基础之上,并且还可能涉及到若干个 CD 表和 CCD 表。由于在复制捕获子句中只能指定一个 CD 表或 CCD 表,所以不能支持昵称的视图。另外,不能支持远程视图的昵称,这是因为缺少主键。

CD 或 CCD 表必须是昵称而不能是视图或别名。

有关《DB2 复制指南和参考版本 8》的信息,请参阅相关信息

COMMITCOUNT FOR UPDATE count
对于增量更新处理,可以指定落实计数,有关进一步的信息,请参阅UPDATE INDEX。如果未指定它,则缺省值取自 DB2EXT.DBDEFAULTS 视图,其中 DEFAULTNAME='COMMITCOUNT'。

可以在 DB2EXT.TEXTINDEXES.COMMITCOUNT 中找到索引的 COMMITCOUNT FOR UPDATE 值。可以使用 ALTER INDEX 命令对每个索引更改此值。它还适用于根据 UPDATE FREQUENCY 规范的已调度更新处理。如果值为 0,则意味着更新是在一个事务中完成的,如果值大于 0,则指定要在一个事务中处理的文档数。

使用 commitcount 会对性能有影响。有关信息,请参阅性能注意事项

RECREATE INDEX ON UPDATE
这不允许增量索引更新,但是会在(由命令或已调度的更新)执行更新操作时重新创建索引。要获取更多信息,请参阅UPDATE INDEX上的“使用说明”。
注意

没有对用户表创建任何触发器,也没有创建日志表。

INDEX DIRECTORY directory
要用来存储文本索引的目录路径。由于该目录将包含索引数据,因此应确保 DB2 实例所有者用户标识对该目录具有读/写和执行许可权。

缺省值取自 DB2EXT.DBDEFAULTS 视图,其中 DEFAULTNAME=INDEXDIRECTORY'。在该目录下创建了一个子目录 NODE<nr> 以区分服务器的逻辑节点上的索引。

注意,在分布式 DB2 环境中,每个物理节点上都必须存在此目录。

WORK DIRECTORY directory
(可选)可以指定独立的工作目录,该目录将在执行索引搜索和管理操作期间用来存储临时文件。该目录必须存在,并且对于 DB2 实例所有者用户标识都具有读/写和执行许可权。

缺省值取自 DB2EXT.DBDEFAULTS 视图,其中 DEFAULTNAME='WORKDIRECTORY'。在该目录下创建了一个子目录 NODE<nr> 以区分服务器的逻辑节点上的索引。

注意,在分布式 DB2 环境中,每个物理节点上都必须存在此目录。

ADMINISTRATION TABLES IN tablespace-name
为索引创建的管理表的常规表空间的名称。表空间必须存在。如果不指定此项,则会选择用户表的表空间(如果索引是对基本表创建的)。

对于昵称或视图,DB2 将选择缺省表空间。

当为分布式 DB2 环境中的存储过程搜索而对视图、昵称或文本索引创建文本索引时,表空间必须属于单个节点。

CACHE TABLE (SQL-column-expression-list)
除了索引之外,还会构建高速缓存表,该表由指定的列表达式组成。此高速缓存用来通过存储过程搜索返回结果集而不必将全文本搜索结果与 DB2 表连接起来。注意,始终可以执行将全文本索引与 CONTAINS 函数配合使用的常规 DB2 搜索。

使用对其创建索引的表的非限定列名来定义 SQL 列表达式。允许的 SQL 列表达式类型是所有内置的和用户定义的单值类型。结果集中的列名是使用下列规则确定的:

  • 如果在列表达式中由 SQL AS 子句显式命名,则使用指定的名称。例如:CACHE TABLE (C1+C2 AS myname)
  • 如果不带 AS 子句使用指定表的列,则使用该列的名称。例如:CACHE TABLE(C1)
  • 如果不带 AS 使用表达式,并且表达式不引用已命名的列,则 CREATE INDEX 会报告错误。
  • 不允许重复的列名。

不支持将 CLOB 数据类型作为高速缓存数据类型。需要将这些数据类型强制类型转型为 VARCHARS

注意

注意,如果结果集的列名不是互不相同的,则 CREATE INDEX 命令会返回错误。还要注意,在创建之后,高速缓存表不是隐式激活的,例如,在执行 DB2TEXT ACTIVATE CACHE 之前,不可能执行由存储过程执行的搜索。

仅当用户表存储在具有单个节点的表空间中时,才能在分布式 DB2 环境中使用此选项。

PERSISTENT IN directory
指定创建的高速缓存是持久的,并且可在取消激活或系统重新引导之后短暂激活。持久高速缓存存储在指定的目录中。

注意,如果没有指定目录,则缺省值取自 db2ext.dbdefaults 视图,其中 DEFAULTNAME='CACHEDIRECTORY'

TEMPORARY
指定高速缓存不是持久存储的。如果既没有指定 PERSISTENT,也没有指定 TEMPORARY,则缺省值取自 DB2EXT.DBDEFAULTS 视图,其中 DEFAULTNAME='USEPERSISTENTCACHE'。
MAXIMUM CACHE SIZE memsize
指定在 DB2TEXT ACTIVATE CACHE 期间要构建的高速缓存表的最大大小。必须以兆字节为单位将 memsize 参数指定为正整数。没有为 memsize 指定缺省值。如果该整数太小,则 ACTIVATE CACHE 命令将失败。实际高速缓存大小是在执行 ACTIVATE CACHE 命令期间计算的。

不同平台上对最大高速缓存大小的限制是:

  • Windows:1024 MB(1 GB = 1073741824 个字节)
  • AIX:1536 MB(1.5 GB = 1610612736 个字节)
  • Solaris、Linux 和 HP-UX:2048 MB(2 GB = 2147483647 个字节)

有关更多信息,请参阅附录B. 使用大量内存

PCTFREE percentage
指定要为附加文档保留的高速缓存的百分比。该百分比必须是小于 100 并且大于或等于 0 的整数。如果未指定此项,则缺省值取自 db2ext.dbdefaults 视图,其中 DEFAULTNAME='PCTFREE'

有关详细信息,请参阅ACTIVATE CACHE

INITIAL SEARCH RESULT ORDER (SQL-order-by-list)
指定在初次建立索引期间用于检索用户表内容的顺序。当使用此选项时,通过跳过对全文本搜索结果进行动态排序,文档就会象存储在高速缓存结果表中一样按它们的建立索引顺序返回。

有关进一步的信息,请参阅存储过程搜索函数

仅当您正在使用“存储过程”搜索界面时,才能使用预先排序的索引。

注意

对于增量更新之后的新文档或已更改的文档,不能确保该索引顺序。例如:INITIAL RESULT ORDER(length(column1) asc, column2+column3 desc)

KEY COLUMNS FOR INDEX ON VIEW (SQL-columnname-list)
如果对视图创建了索引,则必须指定 KEY COLUMNS FOR INDEX ON VIEW 子句,否则,“一定不能”指定该子句。列名列表指定 “唯一地”标识视图中的一行的列。

由于 DB2 不能对主键检查这种唯一性,因此,用户应负责确保等价的唯一性。指定的列为索引构建日志表的一部分。

INDEX CONFIGURATION (option-value), ...
这些是索引配置值。缺省值加上了下划线
选项 描述
TreatNumbersAsWords 0 或 1 将一系列数字解释为独立的单词,即使它们与字符相邻也是这样,例如,缺省值 0 意味着将 tea42at5 看作是一个单词。
IndexStopWords 0 或 1 在建立索引期间考虑或者忽略无用词。目前,无用词列表是 <instance>/sqllib/db2ext/resources 目录中的一个 UCS-2 文件 <language>.tsw。创建索引之后,更改此文件没有任何影响。还要注意,<language> 是 CREATE INDEX 命令中的 LANGUAGE 值。
UpdateDelay 指定不使用捕获表的增量更新的持续时间(以秒计)。将仅从日志表中抽取早于此持续时间的条目。这是为了避免丢失更新。例如,在用户事务对更新命令有影响的事务情况中,未反映在索引中的文档更改。因此,UpdateDelay 参数应设置为对其创建索引的表的用户写事务的最长持续时间。
CONNECT TO database-name
作为此命令的目标的数据库的名称。如果设置了 DB2DBDFT 并且用户正在服务器上运行命令,则可以省略此参数。注意,用户标识必须具有必需的 DB2 权限。
USER userid USING password
使用 passworduserid 来连接至数据库。如果未指定它们,则会尝试使用当前用户标识而不带密码来建立连接。
对数据库的更改
  • 更改 DB2 Net Search Extender 目录视图。
  • 在指定的表空间中创建索引日志表。仅当未指定 RECREATE INDEX 选项并且未指定捕获表时才执行此操作。
  • 在指定的表空间中创建索引事件表。
  • 因循第一次更新:对用户文本表创建触发器(仅当未指定 RECREATE INDEX 并且未使用捕获表时)
  • 如果使用了复制捕获表,则会对捕获控制表进行下列更改:
    • 插入到 IBMSNAP_PRUNCTNL 和 IBMSNAP_PRUNE_SET 表中
    这些表中的条目是由下面的列唯一标识的:
    • APPLY_QUAL='NSE' || <DB2 instance running NSE>
    • SET_NAME= <internal index identifier>
    • TARGET_SERVER=<DB2 database name target to DB2TEXT operation>
    有关列的更多信息,请参阅 ***
对共享内存的更改
因循 ACTIVATE 执行:如果使用了 CACHE TABLE 子句,则会在共享内存中构建结果表的高速缓存。
对文件系统的更改
  • 在索引目录、工作目录和高速缓存目录下创建了 NODE<nr> 子目录。
  • <internal index name> 目录是在 <indexdirectory>/NODE<nr> 下创建的,其中 indexdirectory 指的是此命令的相应参数,NODE<nr> 与分布式 DB2 环境中的节点号相关。

用法

创建全文本索引需要用户表的主键。在 DB2 Net Search Extender V8.1 中,可以使用包含多列的 DB2 主键,没有任何类型限制。但是,要使用表值搜索,不允许任何复合主键。

主键列的数目最多为 14 列,所有主键列的总长度最长为 1024 - 14 = 1010 个字节。

注意

在创建索引之后,一定不能使用 ALTER TABLE 命令来更改主键列或视图键列的长度。

用户表、全文本索引和高速缓存的结果表之间的同步是在执行更新索引命令期间完成的。有关进一步的信息,请参阅UPDATE INDEX