这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

配置分词器

可以通过使用 v_txtindex.AdvTxtSearchLib 库中的两个基本用户定义的转换函数 (UDTF) 之一创建 UDTF,来配置分词器。库中包含两个基本分词器:一个用于 Log Words,一个用于 Ngrams。可以配置每个具有或不具有位置相关性的基本函数。

1 - 分词器基本配置

可以在多个不同的分词器基本配置中进行选择:

创建没有位置相关性的 logWord 分词器:

=> CREATE TRANSFORM FUNCTION v_txtindex.fooTokenizer AS LANGUAGE 'C++' NAME 'logWordITokenizerFactory' LIBRARY v_txtindex.logSearchLib NOT FENCED;

2 - RetrieveTokenizerproc_oid

创建分词器之后,Vertica 将名称和 proc_oid 写入系统表 vs_procedures 中。必须检索分词器的 proc_oid 以执行其他配置。

输入以下查询,替换您自己的分词器名称:

=> SELECT proc_oid FROM vs_procedures WHERE procedure_name = 'fooTokenizer';

3 - 设置分词器参数

使用分词器的 proc_oid 可以配置分词器。有关获取分词器 proc_oid 的详细信息,请参阅配置分词器。以下示例显示了如何配置各个分词器参数:

配置非索引字:

=> SELECT v_txtindex.SET_TOKENIZER_PARAMETER('stopwordscaseinsensitive','for,the' USING PARAMETERS proc_oid='45035996274128376');

配置主要分隔符:

=> SELECT v_txtindex.SET_TOKENIZER_PARAMETER('majorseparators', E'{}()&[]' USING PARAMETERS proc_oid='45035996274128376');

配置二级分隔符:

=> SELECT v_txtindex.SET_TOKENIZER_PARAMETER('minorseparators', '-,$' USING PARAMETERS proc_oid='45035996274128376');

配置最小长度:

=> SELECT v_txtindex.SET_TOKENIZER_PARAMETER('minlength', '1' USING PARAMETERS proc_oid='45035996274128376');

配置最大长度:

=> SELECT v_txtindex.SET_TOKENIZER_PARAMETER('maxlength', '140' USING PARAMETERS proc_oid='45035996274128376');

配置 ngramssize:

=> SELECT v_txtindex.SET_TOKENIZER_PARAMETER('ngramssize', '2' USING PARAMETERS proc_oid='45035996274128376');

锁定分词器参数

配置完分词器时,请将参数 used 设置为 True。更改此设置后,将不能再更改分词器的参数。此时即可使用分词器来创建文本索引。

配置 used 参数:

=> SELECT v_txtindex.SET_TOKENIZER_PARAMETER('used', 'True' USING PARAMETERS proc_oid='45035996274128376');

另请参阅

SET_TOKENIZER_PARAMETER

4 - 查看分词器参数

创建自定义分词器之后,您可以通过以下两种任一方式查看分词器的参数设置:

查看单个分词器参数设置

如果您需要查看分词器的单个参数设置,可以使用 GET_TOKENIZER_PARAMETER 查看特定的分词器参数设置:

=> SELECT v_txtindex.GET_TOKENIZER_PARAMETER('majorseparators' USING PARAMETERS proc_oid='45035996274126984');
 getTokenizerParameter
-----------------------
 {}()&[]
(1 row)

有关详细信息,请参阅GET_TOKENIZER_PARAMETER

查看所有分词器参数设置

如果您需要查看分词器的所有参数,可以使用 READ_CONFIG_FILE 查看分词器的所有参数设置:

=> SELECT v_txtindex.READ_CONFIG_FILE( USING PARAMETERS proc_oid='45035996274126984') OVER();
               config_key | config_value
--------------------------+---------------
          majorseparators | {}()&[]
                maxlength | 140
                minlength | 1
          minorseparators | -,$
 stopwordscaseinsensitive | for,the
                     type | 1
                     used | true
(7 rows)

如果 used 参数设置为 False,则只能查看已对分词器应用的参数。

有关详细信息,请参阅READ_CONFIG_FILE

5 - 删除分词器配置文件

使用 DELETE_TOKENIZER_CONFIG_FILE 函数删除分词器配置文件。此函数不会删除用户定义的转换函数 (UDTF)。而是仅删除与 UDTF 关联的配置文件。

当参数“已使用 (used)”设置为 False 时,删除分词器配置文件:

=> SELECT v_txtindex.DELETE_TOKENIZER_CONFIG_FILE(USING PARAMETERS proc_oid='45035996274127086');

删除参数“确认 (confirm)”设置为 True 的分词器配置文件。此设置将强制执行配置文件删除操作,即使参数“已使用 (used)”也设置为 True

=> SELECT v_txtindex.DELETE_TOKENIZER_CONFIG_FILE(USING PARAMETERS proc_oid='45035996274126984', confirm='true');

有关详细信息,请参阅DELETE_TOKENIZER_CONFIG_FILE