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

返回本页常规视图.

文本搜索函数

此部分包含 Vertica 专用的文本搜索函数。

1 - DELETE_TOKENIZER_CONFIG_FILE

删除分词器配置文件。

语法

SELECT v_txtindex.DELETE_TOKENIZER_CONFIG_FILE (USING PARAMETERS proc_oid='proc_oid', confirm={true | false });

参数

confirm = [true | false]
Boolean 标志。表示应删除该配置文件,即使分词器仍在使用。

True — 当使用的参数值为 True 时,强制删除分词器。

False — 当使用的参数值为 False 时,删除分词器。

默认值: False

proc_oid
在创建分词器时为其分配的唯一标识符。用户必须查询系统表 vs_procedures 以为给定分词器名称获取 proc_oid。有关详细信息,请参阅配置分词器

示例

以下示例说明如何使用 DELETE_TOKENIZER_CONFIG_FILE 删除分词器配置文件:

=> SELECT v_txtindex.DELETE_TOKENIZER_CONFIG_FILE (USING PARAMETERS proc_oid='45035996274126984');
 DELETE_TOKENIZER_CONFIG_FILE
------------------------------
 t
(1 row)

2 - GET_TOKENIZER_PARAMETER

返回给定分词器的配置参数。

语法

SELECT v_txtindex.GET_TOKENIZER_PARAMETER(parameter_name USING PARAMETERS proc_oid='proc_oid');

参数

parameter_name
要返回的参数的名称。

以下几项之一:

  • stopWordsCaseInsensitive

  • minorSeparators

  • majorSeparators

  • minLength

  • maxLength

  • ngramsSize

  • used

proc_oid
在创建分词器时为其分配的唯一标识符。用户必须查询系统表 vs_procedures 以为给定分词器名称获取 proc_oid。有关详细信息,请参阅配置分词器

示例

以下示例显示了如何使用 GET_TOKENIZER_PARAMETER。

返回分词器中使用的停止词:

=> SELECT v_txtindex.GET_TOKENIZER_PARAMETER('stopwordscaseinsensitive' USING PARAMETERS proc_oid='45035996274126984');
 getTokenizerParameter
-----------------------
 devil,TODAY,the,fox
(1 row)

返回分词器中使用的主要分隔符:

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

3 - READ_CONFIG_FILE

读取并返回给定分词器的所有参数的键值对。

您必须将 OVER() 子句与此函数一起使用。

语法

SELECT v_txtindex.READ_CONFIG_FILE(USING PARAMETERS proc_oid='proc_oid') OVER ()

参数

proc_oid
在创建分词器时为其分配的唯一标识符。用户必须查询系统表 vs_procedures 以为给定分词器名称获取 proc_oid。有关详细信息,请参阅配置分词器

示例

以下示例显示了如何使用 READ_CONFIG_FILE 来返回与分词器关联的参数:

=> SELECT v_txtindex.READ_CONFIG_FILE(USING PARAMETERS proc_oid='45035996274126984') OVER();
                config_key | config_value
 --------------------------+---------------------
  majorseparators          | {}()&[]
  stopwordscaseinsensitive | devil,TODAY,the,fox
(2 rows)

4 - SET_TOKENIZER_PARAMETER

配置分词器参数。

语法

SELECT v_txtindex.SET_TOKENIZER_PARAMETER (parameter_name, parameter_value USING PARAMETERS proc_oid='proc_oid')

参数

parameter_name
要配置的参数的名称。

使用下列内容之一:

  • stopwordsCaseInsensitive:非索引字列表。属于此列表的所有标记都会被忽略。Vertica 支持最多包含前 256 个 Unicode 字符的分隔符和非索引字。

    如果您要定义包含逗号或反斜杠的非索引字,则需要对其转义。
    例如: "Dear Jack\," "Dear Jack\\"

    默认值: '' (空列表)

  • majorSeparators:主要分隔符列表。用引号引起来且之间没有空格。

    默认值: E' []<>(){}|!;,''"*&?+\r\n\t'

  • minorSeparators:二级分隔符列表。用引号引起来且之间没有空格。

    默认值: E'/:=@.-$#%\\_'

  • minLength — 标记拥有的最小长度,Integer 类型。必须大于 0。

    默认值: '2'

  • maxLength:标记拥有的最大长度。Integer 类型。不得大于 1024 字节。有关增加标记大小的信息,请参阅 文本搜索参数

    默认值: '128'

  • ngramsSize:大于 0 的整数值。仅与 ngram 分词器结合使用。

    默认值: '3'

  • used:指示无法更改分词器配置。Boolean 类型。将 used 设置为 True 后,对 setTokenizerParameter 的任何调用将失败。

    在使用已配置的分词器之前,您必须将参数 used 设置为 True。这样做可防止配置在用于创建文本索引后被修改。

    默认值: False

parameter_value
配置参数的值。

如果您要禁用 minorSeperators 或 stopWordsCaseInsensitive,则将其值设置为 ''

proc_oid
在创建分词器时为其分配的唯一标识符。用户必须查询系统表 vs_procedures 以为给定分词器名称获取 proc_oid。有关详细信息,请参阅配置分词器

示例

以下示例显示了如何使用 SET_TOKENIZER_PARAMETER 配置非索引字和分隔符。

配置分词器的非索引字:

=> SELECT v_txtindex.SET_TOKENIZER_PARAMETER('stopwordsCaseInsensitive', 'devil,TODAY,the,fox' USING PARAMETERS proc_oid='45035996274126984');
 SET_TOKENIZER_PARAMETER
-------------------------
 t
(1 row)

配置分词器的主要分隔符:

=> SELECT v_txtindex.SET_TOKENIZER_PARAMETER('majorSeparators',E'{}()&[]' USING PARAMETERS proc_oid='45035996274126984');
 SET_TOKENIZER_PARAMETER
-------------------------
 t
(1 row)