CREATE TEXT INDEX
创建用于执行文本搜索的文本索引。如果表中的数据已分区,则文本索引中会显示一个额外的列用于显示分区。
语法
CREATE TEXT INDEX [[database.]schema.]txtindex-name
ON [schema.]source-table (unique-id, text-field [, column-name,...])
[STEMMER {stemmer-name(stemmer-input-data-type)| NONE}]
[TOKENIZER tokenizer-name(tokenizer-input-data-type)];
参数
-
[database.]schema
数据库和架构。默认架构为
public
。如果指定一个数据库,它必须是当前数据库。如果未指定架构,系统将在默认架构中创建表。
-
txtindex‑name
- 文本索引名称。
-
source‑table
- 要索引的源表。
-
unique‑id
- 源表中包含唯一标识符的列的名称。允许任何数据类型。该列必须是源表中的主键。
-
text‑field
- 源表中包含文本字段的列的名称。有效的数据类型为:
-
CHAR
-
VARCHAR
-
LONG VARCHAR
-
VARBINARY
-
LONG VARBINARY
允许 null 值。
-
-
column‑name
- 要作为附加列包含的一列或多列的名称。
-
stemmer‑name
- 词干分析器的名称。
-
stemmer‑input‑data‑type
- stemmer-name 函数的输入数据类型。
-
tokenizer‑name
- 指定分词器的名称。
-
tokenizer‑input‑data‑type
- 此值为 tokenizer-name 函数的输入数据类型。可以接受任意数量的实参。
如果使用了 Vertica 分词器,则可以省略此参数。
特权
索引可自动继承其父表的查询权限。将允许表所有者和 dbadmin 创建和/或修改索引。
重要
请勿更改文本索引的内容或定义。如果更改了文本索引的内容或定义,则结果将不能与源表适当地匹配。要求
-
要求将具有唯一标识符的一列设置为主键。
-
源表必须具有关联的投影,并且必须按主键进行排序和分段。
示例
以下示例显示如何使用 CREATE TEXT INDEX 语句在表 t_log 上创建附加有未索引列的文本索引:
=> CREATE TEXT INDEX t_log_index ON t_log (id, text, day_of_week);
CREATE INDEX
=> SELECT * FROM t_log_index;
token | doc_id | day_of_week
-----------------------+--------+-------------
'catalog | 1 | Monday
'dbadmin' | 2 | Monday
2014-06-04 | 1 | Monday
2014-06-04 | 2 | Monday
2014-06-04 | 3 | Monday
2014-06-04 | 4 | Monday
2014-06-04 | 5 | Monday
2014-06-04 | 6 | Monday
2014-06-04 | 7 | Monday
2014-06-04 | 8 | Monday
45035996273704966 | 3 | Tuesday
45035996273704968 | 4 | Tuesday
<INFO> | 1 | Tuesday
<INFO> | 6 | Tuesday
<INFO> | 7 | Tuesday
<INFO> | 8 | Tuesday
<WARNING> | 2 | Tuesday
<WARNING> | 3 | Tuesday
<WARNING> | 4 | Tuesday
<WARNING> | 5 | Tuesday
...
(97 rows)
以下示例显示了从已分区的源表创建的文本索引 tpart_index:
=> SELECT * FROM tpart_index;
token | doc_id | partition
------------------------+--------+-----------
0 | 4 | 2014
0 | 5 | 2014
11:00:49.568 | 4 | 2014
11:00:49.568 | 5 | 2014
11:00:49.569 | 6 | 2014
<INFO> | 6 | 2014
<WARNING> | 4 | 2014
<WARNING> | 5 | 2014
Database | 6 | 2014
Execute: | 6 | 2014
Object | 4 | 2014
Object | 5 | 2014
[Catalog] | 4 | 2014
[Catalog] | 5 | 2014
'catalog | 1 | 2013
'dbadmin' | 2 | 2013
0 | 3 | 2013
11:00:49.568 | 1 | 2013
11:00:49.568 | 2 | 2013
11:00:49.568 | 3 | 2013
11:00:49.570 | 7 | 2013
11:00:49.571 | 8 | 2013
45035996273704966 | 3 | 2013
...
(89 rows)