此部分包含 Vertica 专用的文本搜索函数。
文本搜索函数
- 1: DELETE_TOKENIZER_CONFIG_FILE
- 2: GET_TOKENIZER_PARAMETER
- 3: READ_CONFIG_FILE
- 4: SET_TOKENIZER_PARAMETER
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
配置分词器参数。
重要
\n, \t,\r
必须通过 Vertica 表示法 U&’\000D’
或通过 Vertica 转义表示法 E’\r’
以 Unicode 形式输入。否则,它们将被直接视为两个分隔符。例如 "\\" & "r"
。
语法
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)