创建文本索引

选择创建命令,并从扩展菜单中突出显示文本索引。将弹出“创建文本索引”向导。使用该向导中的数个面板为文本索引指定配置选项。

要在各面板之间移动,应输入所有必填信息,并单击下一步按钮,直到完成按钮可用为止。单击完成按钮即可创建文本索引。

要对视图创建文本索引,使用 CREATE INDEX 中描述的 CREATE INDEX 命令。

名称面板

此面板允许您指定文本索引的模式和名称。还可以指定文本索引文件的工作目录和索引目录。为管理表空间上的索引创建管理表。

图 10. 创建文本索引向导:名称面板
创建文本索引向导:名称面板

以下是对该面板中各字段的描述:

表 1. 名称面板文本字段
字段名 必填/可选 缺省值 描述
索引模式 必填 用户标识 选择文本索引的模式名。这是特定于索引的管理表的 DB2 模式名。
索引名称 必填 不适用 为文本索引输入有效的 DB2 索引名。借助索引模式,索引名将唯一地标识数据库中的全文本索引。
索引目录 可选 见路径名 指定将用来存储文本索引的目录路径。对于 DB2 所有者用户标识,目录必须存在,并且具有读、写和运行许可权。
工作目录 可选 见路径名 指定在执行搜索和管理操作期间将用来存储临时文件的工作目录。对于 DB2 所有者用户标识,目录必须存在,并且具有读、写和运行许可权。
管理表空间 可选 使用缺省表空间 选择文本索引管理表的表空间名。必须在用户表的表空间所在的同一个节点组上定义管理表空间。

目标面板

此面板允许您指定表或昵称表的模式和名称以及包含想要建立索引的数据的文本列的名称。可以使用变换函数来修改文本列的内容。除了文本列之外,如果想要对表列表达式的内容建立索引,则还可以指定数字属性。

图 11. 创建文本索引向导:目标面板
创建文本索引向导:目标面板

以下是对该面板中各字段的描述:

表 2. 目标面板文本字段
字段名 必填/可选 缺省值 描述
表模式(1) 必填 用户标识 选择正在对其创建文本索引的表或昵称表的模式。
表名(2) 必填 不适用 选择正在对其创建索引的表或昵称表的名称。表必须具有主键。
文本列(3) 必填 不适用 选择用于创建文本索引的列的名称。必须将列变换为下列类型的其中一种类型,或者它们必须属于下列类型的其中一种类型: CHAR(用于位数据)、VARCHAR(用于位数据)、LONG VARCHAR(用于位数据)、CLOB、DBCLOB、BLOB、GRAPHIC、 VARGRAPHIC、LONG VARGRAPHIC 和 DATALINK。
变换函数 可选 禁用 选择此项以使用变换函数。
变换函数:模式 必填(如果选择了函数的话) 用户标识 选择用来存取文本文档的 UDF 的模式。
变换函数:名称 同上 不适用 选择用来存取文本文档的 UDF 的名称。

注意,只能按顺序指定表模式(1)、表名(2)和文本列(3)。

图 12. 数字属性对话框
数字属性对话框

要查看或添加属性,单击数字属性按钮。将显示一个窗口。要对索引添加数字属性,单击添加按钮,将显示另一个窗口。指定属性的 SQL 列表达式和名称。

或者,选择一种属性,并按适当的按钮来更改、移动或除去条目。

说明数字属性

使用“数字属性”不仅可对文本列还可对列表达式建立索引。例如,如果不仅想要对文本列还要对类型为 TIMESTAMP 的列日期建立索引,应指定数字属性 "cast(julian_day(date) as double)",并为该属性指定名称。

如果想要在搜索查询中使用数字表达式,则应指定数字属性。如果您正在使用 SQL 查询进行搜索,则可以使用组合搜索而不使用数字属性,例如:WHERE numattrib = 123 AND contains('...')

文本属性面板

此面板允许您指定文本文档的语言和格式。如果文档与数据库不是采用相同的 CCSID ,并且文本列属于二进制类型,则应指定 CCSID。注意,最初已经选择了数据库 CCSID。如果文档具有 GPP、HTML、Outside In 或 XML 结构化格式,则可以指定文档模型。

注意

在格式列表框中,Outside In 过滤格式称为 INSO。

图 13. 创建文本索引向导:文本属性面板
创建文本索引向导:文本属性面板

以下是对该面板中各字段的描述:

表 3. 文本属性面板文本字段
字段名 必填/可选 缺省值 描述
语言 可选 EN_US 当对文档建立索引时,选择一种语言以确定句子结束定界符和段结束定界符。
CCSID 可选 数据库的 CCSID 选择用于对文本文档建立索引的 CCSID。
格式 可选 TEXT 选择文本文档格式:HTML、XML、TEXT、INSO 或 GPP。
缺省文档模型 可选 启用 使用缺省文档模型。
用户文档模型 可选 禁用 使用您的文档模型。
模型名称 必填(如果选择了“用户文档模型”的话) 不适用 输入文档模型的名称。对于 HTML、XML、Outside In 和 GPP 格式,可以指定文档模型。注意,只有在模型文件中才能找到该名称。
模型文件 同上 不适用 指定文档模型文件。DB2 实例所有者必须可以读取该文件。
模型 CCSID 同上 数据库 CCSID 选择 CCSID 以解释文档模型文件的内容。
将数字作为单词来处理 可选 禁用 选择此项以将一系列数字解释为独立的单词,即使它们与字符相邻也是这样。
索引无用词 可选 启用 选择此项以启用特定于语言的无用词处理。sqllib/db2ext/resources 目录中的 <language>.tsw 包含无用词列表。

更新特征面板

此面板允许您指定索引是以增量方式更新还是从头开始重新创建。可以指定更新设置,以便索引会在指定时间自动更新。

图 14. 创建文本索引向导:更新特征面板
创建文本索引向导:更新特征面板

以下是对该面板中各字段的描述:

表 4. 更新特征面板文本字段
字段名 必填/可选 缺省值 描述
增量更新 可选 启用 选择此项以进行增量索引更新。如果不启用该复选框,则在执行更新操作时将重新创建索引。
落实计数 可选 0 在一个事务中执行更新期间所处理的更改数。

落实计数对性能有影响。有关信息,请参阅性能注意事项

捕获表特征 可选 不适用 选择此项以使用复制捕获表来捕获对源表的更改。复制捕获表必须是“捕获数据”(CD)表或“捕获更改数据”(CCD)表,并替换 DB2 Net Search Extender 生成的日志表。
复制捕获模式名 可选 用户标识 复制捕获表的模式名。注意,先前必须已经使用 DB2 复制创建了该表。
复制捕获表名 必填(如果启用了捕获表特征的话) 不适用 复制捕获表的表名。注意,先前必须已经使用 DB2 复制创建了该表。
控制表模式名 必填(如果启用了捕获表特征的话) 不适用 控制表模式名。注意,先前必须已经使用 DB2 复制创建了控制表。
自动或手工重组单选按钮 可选或必填 启用/禁用 自动或手工完成索引重组。
“更新”的最小更改数 可选 1 指定在指定时间对索引进行增量更新之前对文本文档所做的更改的最小数目。
更新调度 可选 禁用 选择此项以添加自动更新设置。

要添加索引更新设置,单击设置按钮。注意,仅当您选择了更新调度时才会启用此按钮。在此对话框中,选择更新时间的天、小时和分钟。注意,如果选择了很多天,则会在所选择的每一天的同一时间进行更新。

高速缓存表面板

此面板除了允许您指定索引之外,还允许指定高速缓存的表。可以指定要高速缓存的结果列,并且可以使用存储过程来搜索高速缓存。还可以指定其它高速缓存参数,例如,类型、最大大小以及在初始建立索引期间检索用户表的内容所采用的顺序。

图 15. 创建文本索引向导:“高速缓存表”面板
创建文本索引向导:高速缓存表面板

以下是对该面板中各字段的描述:

表 5. 结果高速缓存面板文本字段
字段名 必填/可选 缺省值 描述
启用表高速缓存 可选 禁用 选择此项以启用高速缓存表的构建。
结果列表 必填(如果选择了“启用表高速缓存”的话) 不适用 显示用来指定搜索结果列的 SQL 列表达式的列表。
最大文档数 必填 表的行计数 请参阅下面这一节:确定高速缓存利用率和高速缓存大小。
平均高速缓存行长度 必填 不适用 请参阅下面这一节:确定高速缓存利用率和高速缓存大小。
初始高速缓存利用率的百分比 可选 50% 选择保留的用于附加文档的高速缓存的百分比。
最大高速缓存大小 可选 不适用 指定在索引激活期间构建的高速缓存表的最大大小。如果该数目太小,则将无法激活。
初始搜索结果顺序 可选 禁用 选择此项以定义搜索结果顺序。文档将按照在高速缓存表中相同的建立索引顺序返回。进行增量更新之后就不能确保此顺序了。
使用持久高速缓存 可选 启用 在取消激活或系统重新引导之后,此选项将启用执行快速激活。注意,必须指定持久高速缓存的目录路径。如果高速缓存是临时的,则保持禁用状态。
确定高速缓存利用率和高速缓存大小

初始高速缓存利用率的百分比指定要保留给附加文档使用的高速缓存的百分比。最大高速缓存大小指定在激活高速缓存期间要构建的高速缓存表的最大大小。这些选项取决于下列因素:

可以输入初始高速缓存利用率的百分比最大高速缓存大小的建议值。或者,也可以每当在最大文档数平均高速缓存行长度字段中输入值时就计算这些值。

最大文档数值初始设置为表的行计数。根据文档数和期望的更改数来修改此值。包括所有文档更新、添加和删除。

当将 SQL 表达式添加至高速缓存表列表时,就会根据结果的长度来计算平均高速缓存行长度。由于这是基于表中的行数的,所以计算可能要花相当长的时间。如果您知道此值通常比较小,则修改该值。

例如,如果一个表具有 10 个条目,列表达式的总计为 100,则这些值是初始设置的。如果期望最大文档数(包括已删除的文档)为 10000,则输入此数字。如果您知道列表达式平均起来小于计算的值(例如,VARCHAR(100) 和已填写的文本大小 10),则使用此数字作为平均行大小。

要定义初始搜索结果顺序,单击定义按钮。注意,仅当选择了“初始搜索结果顺序”复选框时才会启用此按钮。将出现一个对话框显示指定的所有 SQL 列表达式。要添加结果顺序,单击添加按钮,并在对话框中,指定 SQL 结果顺序。

要更改、移动或除去条目,选择表达式并单击适当的按钮。

图 16. 初始搜索结果顺序对话框
初始搜索结果顺序对话框

要添加 SQL 列表达式,单击“结果列”表旁边的添加按钮。在该对话框中,指定结果列表达式和名称。

要更改或除去条目,单击将启用适当按钮的列表达式。

图 17. 更改列表达式对话框
更改列表达式对话框

总结面板

此面板对先前选择的参数进行了概括。

图 18. 创建文本索引向导:总结面板
创建文本索引向导:总结面板

单击显示命令按钮以查看当单击完成按钮时将运行的命令。此操作将创建文本索引。