bts 访问方法语法

bts 访问方法是辅助访问方法,用于创建支持 Basic Text Search 的索引。

语法

元素 描述
column_name 表内包含要搜索的文本文档的列的名称。
expression 用于定义索引段的表达式。必须返回布尔值。只能包含来自当前表的列和来自一行的数据值。不允许子查询或聚集。内置的 CURRENT、DATE、SYSDATE 和 TODAY 函数在此处无效。bts_contains() 搜索谓词无效。
field 建立索引的列名。
index_name bts 索引的名称。
max_clauses Basic Text Search 查询中的最大子句数。缺省值为 1024。
op_class 适用于 column_name 中指定的数据类型的运算符类。
space_name 存储 bts 索引的智能大对象空间或外部空间的名称。
table_name 要为其创建索引的表的名称。
tempspace_name 用于存储临时文件的空间的名称。
thesaurus_index 对同义词词典表创建的 bts 索引的名称。

用途

必须为计划搜索的各文本列创建 bts 索引。

您可以为每个文本列创建单独的 bts 索引,也可以为表中的多个文本列创建组合索引。

创建 bts 索引之后,不能更改其特征。相反,必须删除该索引并重新创建。

创建 bts 索引时,针对已建立索引的列,指定为其数据类型定义的运算符类。运算符类是一组函数,数据库服务器会将这组函数与 bts 访问方法关联,以便优化查询和构建索引。支持 bts 索引的每个数据类型都有一个对应的运算符类。下表列出了每个数据类型及其对应的运算符类。
表 1. 数据类型以及它们对应的运算符类
数据类型 运算符类
BLOB bts_blob_ops
CHAR bts_char_ops
CLOB bts_clob_ops
LVARCHAR bts_lvarchar_ops
NCHAR bts_nchar_ops
NVARCHAR bts_nvarchar_ops
VARCHAR bts_varchar_ops

thesaurusthesaurus_index 参数要求将 query_default_operator 设置为 OR。

使用 query_default_field 索引参数可覆盖用于具有显式命名字段的查询的隐式缺省字段。如果要查询特定列中的文本,请创建组合索引。使用 query_default_field="*" 选项可创建组合索引,以对同名字段下索引中所包括的每个列中的文本建立索引。如果将 query_default_field="*" 选项与 xmltags 选项组合使用,那么将仅对 XML 列创建组合索引。

示例

示例 1:创建 bts 索引并将其存储在智能大对象空间中
例如,假设搜索数据包含在 products 表中数据类型为 CHAR 的列 brands 中。要在智能大对象空间 sbsp1 中创建 bts 索引 desc_idx,请使用以下语法:
CREATE INDEX desc_idx ON products (brands  bts_char_ops)
  USING bts IN sbsp1;
示例 2:创建分段的 bts 索引
以下示例会根据表达式对索引分段,以将 bts 索引存储在三个智能大对象空间中:
CREATE INDEX bts_idx ON bts_tab(col2 bts_char_ops) USING bts
            FRAGMENT BY EXPRESSION
                ( col1 <= 1000000) IN bts_sbspace00,
        (col1 > 1000000 and col1 <= 2000000) IN bts_sbspace01,
                REMAINDER IN bts_sbspace36;
1 请参阅 Basic Text Search XML 索引参数语法
2 请参阅分析器索引参数
3 请参阅非索引字索引参数
4 请参阅创建同义词词典
5 请参阅优化 bts 索引
6 请参阅为临时数据创建空间
7 请参阅跟踪针对 bts 索引的查询
8 请参阅布尔运算符
9 请参阅组合索引
10 请参阅查询结果最大数量
11 请参阅 canonical_maps 索引参数