字符串查找函数
本节中的所有函数默认是区分大小写的查找。通常提供不区分大小写的查找功能的版本函数。
不区分大小写的查找遵循英语的字母大小写规则。例如,英语中的大写 i
是 I
,而在土耳其语中则是 İ
- 对于英语以外的语言,结果可能出乎意料。
本节中的函数还假设被搜索的字符串(在本节中称为 haystack
)和搜索字符串(在本节中称为 needle
)都是单字节编码的文本。如果违反此假设,则不会抛出异常,并且结果是未定义的。通过 UTF-8 编码的字符串的搜索通常由单独的函数变体提供。同样,如果使用了 UTF-8 函数变体而输入字符串不是 UTF-8 编码的文本,则不会抛出异常,结果也是未定义的。请注意,不会执行自动 Unicode 规范化,但您可以使用 normalizeUTF8*() 函数来进行规范化。
position
返回子字符串 needle
在字符串 haystack
中的位置(以字节为单位,从 1 开始)。
语法
别名:
position(needle IN haystack)
参数
haystack
— 执行搜索的字符串。 String 或 Enum。needle
— 要搜索的子字符串。 String。start_pos
– 开始搜索的haystack
中的位置(基于 1)。 UInt。 可选。
返回值
如果子字符串 needle
为空,则适用以下规则:
- 如果未指定
start_pos
:返回1
- 如果
start_pos = 0
:返回1
- 如果
start_pos >= 1
且start_pos <= length(haystack) + 1
:返回start_pos
- 否则:返回
0
相同的规则也适用于函数 locate
、positionCaseInsensitive
、positionUTF8
和 positionCaseInsensitiveUTF8
。
示例
查询:
结果:
带有 start_pos
参数的示例:
查询:
结果:
needle IN haystack
语法的示例:
查询:
结果:
带有空 needle
子字符串的示例:
查询:
结果:
locate
与 position 类似,但 haystack
和 locate
的参数顺序交换。
此函数的行为取决于 ClickHouse 的版本:
- 在版本 < v24.3 中,
locate
是函数position
的别名,并接受参数(haystack, needle[, start_pos])
。 - 在版本 >= 24.3 中,
locate
是个别函数(为了更好地与 MySQL 兼容),并接受参数(needle, haystack[, start_pos])
。 可以使用设置 function_locate_has_mysql_compatible_argument_order = false 恢复以前的行为。
语法
positionCaseInsensitive
不区分大小写的 position 的变体。
示例
查询:
结果:
positionUTF8
与 position 类似,但假设 haystack
和 needle
是 UTF-8 编码的字符串。
示例
函数 positionUTF8
正确计算字符 ö
(由两个点表示)为一个 Unicode 代码点:
查询:
结果:
positionCaseInsensitiveUTF8
与 positionUTF8 类似,但进行不区分大小写的搜索。
multiSearchAllPositions
与 position 类似,但返回多个 needle
子字符串在 haystack
字符串中的位置数组(以字节为单位,从 1 开始)。
所有 multiSearch*()
函数仅支持最多 28 个 needles。
语法
参数
返回值
- 如果找到了子字符串,返回以字节为单位计数的起始位置数组,从 1 开始。
- 如果未找到子字符串,返回 0。
示例
查询:
结果:
multiSearchAllPositionsCaseInsensitive
与 multiSearchAllPositions 类似,但忽略大小写。
语法
参数
返回值
- 如果找到了子字符串,返回以字节为单位计数的起始位置数组,从 1 开始。
- 如果未找到子字符串,返回 0。
示例
查询:
结果:
multiSearchAllPositionsUTF8
与 multiSearchAllPositions 类似,但假设 haystack
和 needle
子字符串是 UTF-8 编码的字符串。
语法
参数
返回值
- 如果找到了子字符串,返回以字节为单位计数的起始位置数组,从 1 开始。
- 如果未找到子字符串,返回 0。
示例
将 ClickHouse
作为 UTF-8 字符串,查找 C
(\x43
) 和 H
(\x48
) 的位置。
查询:
结果:
multiSearchAllPositionsCaseInsensitiveUTF8
与 multiSearchAllPositionsUTF8 类似,但忽略大小写。
语法
参数
返回值
- 如果找到了子字符串,返回以字节为单位计数的起始位置数组,从 1 开始。
- 如果未找到子字符串,返回 0。
示例
将 ClickHouse
作为 UTF-8 字符串,查找 c
(\x63
) 和 h
(\x68
) 的位置。
查询:
结果:
multiSearchFirstPosition
与 position
类似,但返回在 haystack
字符串中匹配任意多个 needle
字符串的最左侧偏移量。
函数 multiSearchFirstPositionCaseInsensitive
、multiSearchFirstPositionUTF8
和 multiSearchFirstPositionCaseInsensitiveUTF8
提供了此函数的不区分大小写和/或 UTF-8 变体。
语法
参数
返回值
- 在
haystack
字符串中匹配任意多个needle
字符串的最左侧偏移量。 - 如果没有匹配,返回 0。
示例
查询:
结果:
multiSearchFirstPositionCaseInsensitive
与 multiSearchFirstPosition
类似,但忽略大小写。
语法
参数
返回值
- 在
haystack
字符串中匹配任意多个needle
字符串的最左侧偏移量。 - 如果没有匹配,返回 0。
示例
查询:
结果:
multiSearchFirstPositionUTF8
与 multiSearchFirstPosition
类似,但假设 haystack
和 needle
是 UTF-8 字符串。
语法
参数
返回值
- 在
haystack
字符串中匹配任意多个needle
字符串的最左侧偏移量。 - 如果没有匹配,返回 0。
示例
查找在 UTF-8 字符串 hello world
中匹配任意给定子字符串的最左侧偏移量。
查询:
结果:
multiSearchFirstPositionCaseInsensitiveUTF8
与 multiSearchFirstPosition
类似,但假设 haystack
和 needle
是 UTF-8 字符串,并且忽略大小写。
语法
参数
返回值
- 在
haystack
字符串中匹配任意多个needle
字符串的最左侧偏移量,忽略大小写。 - 如果没有匹配,返回 0。
示例
查找在 UTF-8 字符串 HELLO WORLD
中匹配任意给定子字符串的最左侧偏移量。
查询:
结果:
multiSearchFirstIndex
返回在字符串 haystack
中最左侧找到的 needle<sub>i</sub>
的索引 i
(从 1 开始),否则返回 0。
函数 multiSearchFirstIndexCaseInsensitive
、multiSearchFirstIndexUTF8
和 multiSearchFirstIndexCaseInsensitiveUTF8
提供不区分大小写和/或 UTF-8 变体。
语法
参数
返回值
- 索引(从 1 开始)最左侧找到的子字符串。否则返回 0,如果没有匹配。 UInt8。
示例
查询:
结果:
multiSearchFirstIndexCaseInsensitive
返回在字符串 haystack
中最左侧找到的 needle<sub>i</sub>
的索引 i
(从 1 开始),否则返回 0。忽略大小写。
语法
参数
返回值
- 索引(从 1 开始)最左侧找到的子字符串。否则返回 0,如果没有匹配。 UInt8。
示例
查询:
结果:
multiSearchFirstIndexUTF8
返回在字符串 haystack
中最左侧找到的 needle<sub>i</sub>
的索引 i
(从 1 开始),否则返回 0。假设 haystack
和 needle
是 UTF-8 编码的字符串。
语法
参数
返回值
- 索引(从 1 开始)最左侧找到的子字符串,否则返回 0,如果没有匹配。 UInt8。
示例
将 Hello World
作为 UTF-8 字符串、查找 Hello
和 World
的第一个索引。
查询:
结果:
multiSearchFirstIndexCaseInsensitiveUTF8
返回在字符串 haystack
中最左侧找到的 needle<sub>i</sub>
的索引 i
(从 1 开始),否则返回 0。假设 haystack
和 needle
是 UTF-8 编码的字符串。忽略大小写。
语法
参数
返回值
- 索引(从 1 开始)最左侧找到的子字符串。否则返回 0,如果没有匹配。 UInt8。
示例
将 HELLO WORLD
作为 UTF-8 字符串、查找 hello
和 world
的第一个索引。
查询:
结果:
multiSearchAny
如果至少有一个字符串 needle<sub>i</sub>
匹配字符串 haystack
则返回 1,否则返回 0。
函数 multiSearchAnyCaseInsensitive
、multiSearchAnyUTF8
和 multiSearchAnyCaseInsensitiveUTF8
提供不区分大小写和/或 UTF-8 变体。
语法
参数
返回值
- 1,如果至少有一个匹配。
- 0,如果没有至少一个匹配。
示例
查询:
结果:
multiSearchAnyCaseInsensitive
与 multiSearchAny 类似,但忽略大小写。
语法
参数
返回值
- 1,如果至少有一个不区分大小写的匹配。
- 0,如果没有至少一个不区分大小写的匹配。
示例
查询:
结果:
multiSearchAnyUTF8
与 multiSearchAny 类似,但假设 haystack
和 needle
子字符串是 UTF-8 编码的字符串。
语法
参数
返回值
- 1,如果至少有一个匹配。
- 0,如果没有至少一个匹配。
示例
将 ClickHouse
作为 UTF-8 字符串,检查单词中是否存在字母 C
('\x43')或 H
('\x48')。
查询:
结果:
multiSearchAnyCaseInsensitiveUTF8
与 multiSearchAnyUTF8 类似,但忽略大小写。
语法
参数
返回值
- 1,如果至少有一个不区分大小写的匹配。
- 0,如果没有至少一个不区分大小写的匹配。
示例
将 ClickHouse
作为 UTF-8 字符串,检查单词中是否存在字母 h
(\x68
),忽略大小写。
查询:
结果:
match
返回字符串 haystack
是否与正则表达式 pattern
匹配,使用 re2 正则表达式语法。
匹配基于 UTF-8,例如 .
匹配 Unicode 代码点 ¥
,在 UTF-8 中用两个字节表示。正则表达式不能包含空字节。如果 haystack
或模式不是有效的 UTF-8,则行为是未定义的。
与 re2 的默认行为不同,.
会匹配换行符。要禁用此功能,请在模式前加上 (?-s)
。
如果您只想在字符串中搜索子字符串,可以使用函数 like 或 position 来替代 - 它们的速度比此函数快得多。
语法
别名: haystack REGEXP pattern operator
multiMatchAny
与 match
类似,但是如果至少有一个模式匹配,则返回 1,否则返回 0。
multi[Fuzzy]Match*()
函数族使用 (Vectorscan)[https://github.com/VectorCamp/vectorscan] 库。因此,仅当 ClickHouse 以 vectorscan 支持编译时才启用。
要关闭所有使用 hyperscan 的函数,请使用设置 SET allow_hyperscan = 0;
。
由于 vectorscan 的限制,haystack
字符串的长度必须小于 232 字节。
Hyperscan 通常易受到正则表达式拒绝服务(ReDoS)攻击(例如,见 (here)[https://www.usenix.org/conference/usenixsecurity22/presentation/turonova]、(here)[https://doi.org/10.1007/s10664-021-10033-1] 和 (here)[https://doi.org/10.1145/3236024.3236027])。建议用户仔细检查提供的模式。
如果您只想在字符串中搜索多个子字符串,可以使用函数 multiSearchAny 来替代 - 它们的速度比此函数快得多。
语法
multiMatchAnyIndex
与 multiMatchAny
类似,但返回任何与 haystack
匹配的索引。
语法
multiMatchAllIndices
与 multiMatchAny
类似,但返回与 haystack
匹配的所有索引数组(可按任意顺序)。
语法
multiFuzzyMatchAny
与 multiMatchAny
类似,但如果任何模式在固定的 编辑距离 内与 haystack
匹配,则返回 1。此功能依赖于 hyperscan 库的实验特性,并且在某些边缘情况下可能较慢。其性能取决于编辑距离值和所使用的模式,但始终比非模糊变体更昂贵。
multiFuzzyMatch*()
函数族不支持 UTF-8 正则表达式(它将其视为字节序列),这是 hyperscan 的限制。
语法
multiFuzzyMatchAnyIndex
与 multiFuzzyMatchAny
类似,但返回在固定的编辑距离内与 haystack
匹配的任何索引。
语法
multiFuzzyMatchAllIndices
与 multiFuzzyMatchAny
类似,但返回在固定的编辑距离内与 haystack
匹配的所有索引数组(可按任意顺序)。
语法
extract
返回正则表达式在字符串中的第一个匹配项。如果 haystack
不匹配 pattern
正则表达式,则返回空字符串。
如果正则表达式带有捕获组,则函数将输入字符串与第一个捕获组匹配。
语法
参数
haystack
— 输入字符串。 String。pattern
— 带有 re2 正则表达式语法 的正则表达式。
返回值
- 正则表达式在
haystack
字符串中的第一个匹配项。 String。
示例
查询:
结果:
extractAll
返回正则表达式在字符串中的所有匹配项数组。如果 haystack
不匹配 pattern
正则表达式,则返回空字符串。
与子模式的行为与 extract
函数相同。
语法
参数
haystack
— 输入字符串。 String。pattern
— 带有 re2 正则表达式语法 的正则表达式。
返回值
示例
查询:
结果:
extractAllGroupsHorizontal
使用 pattern
正则表达式匹配 haystack
字符串的所有组。返回一个数组的数组,第一个数组包含全部匹配第一个组的片段,第二个数组匹配第二组,依此类推。
此函数比 extractAllGroupsVertical 慢。
语法
参数
haystack
— 输入字符串。 String。pattern
— 带有 re2 正则表达式语法 的正则表达式。必须包含组,每个组都用括号括起来。如果pattern
不包含组,则会抛出异常。String。
返回值
- 匹配项的数组数组。 Array。
如果 haystack
不匹配 pattern
正则表达式,则返回一个空数组的数组。
示例
结果:
extractGroups
使用给定正则表达式匹配输入字符串的所有组,返回匹配项的数组数组。
语法
参数
haystack
— 输入字符串。 String。pattern
— 带有 re2 正则表达式语法 的正则表达式。必须包含组,每个组都用括号括起来。如果pattern
不包含组,则会抛出异常。String。
返回值
- 匹配项的数组数组。 Array。
示例
结果:
extractAllGroupsVertical
使用 pattern
正则表达式匹配 haystack
字符串的所有组。返回一个数组的数组,每个数组包含来自每个组的匹配片段。片段按在 haystack
中出现的顺序分组。
语法
参数
haystack
— 输入字符串。 String。pattern
— 带有 re2 正则表达式语法 的正则表达式。必须包含组,每个组都用括号括起来。如果pattern
不包含组,则会抛出异常。String。
返回值
- 匹配项的数组数组。 Array。
如果 haystack
不匹配 pattern
正则表达式,则返回一个空数组。
示例
结果:
like
返回字符串 haystack
是否与 LIKE 表达式 pattern
匹配。
LIKE 表达式可以包含普通字符和以下元符号:
%
表示任意数量的任意字符(包括零个字符)。_
表示一个任意字符。\
用于转义字面量%
、_
和\
。
匹配是基于 UTF-8 的,例如 _
匹配 Unicode 代码点 ¥
,在 UTF-8 中使用两个字节表示。
如果 haystack 或 LIKE 表达式不是有效的 UTF-8,行为是未定义的。
没有执行自动的 Unicode 规范化,您可以使用 normalizeUTF8*() 函数来做到这一点。
要匹配字面量 %
、_
和 \
(这些是 LIKE 特殊字符),请在前面加上反斜杠:\%
、\_
和 \\
。如果反斜杠在 %
、_
或 \
以外的字符前面,则失去特殊含义(即被字面解释)。请注意,ClickHouse 要求字符串中的反斜杠 也要被引用,因此您实际上需要写 \\%
、\\_
和 \\\\
。
对于形如 %needle%
的 LIKE 表达式,该函数的速度与 position
函数一样快。所有其他 LIKE 表达式在内部转换为正则表达式,并以类似于 match
函数的性能执行。
语法
别名: haystack LIKE pattern
(操作符)
notLike
与 like
相同,但否定结果。
别名: haystack NOT LIKE pattern
(操作符)
ilike
与 like
相同,但不区分大小写。
别名: haystack ILIKE pattern
(操作符)
notILike
与 ilike
相同,但否定结果。
别名: haystack NOT ILIKE pattern
(操作符)
ngramDistance
计算 haystack
字符串和 needle
字符串之间的 4-gram 距离。为此,它计算两个 4-gram 多重集合之间的对称差异,并通过它们的基数之和进行标准化。返回一个介于 0 和 1 之间的 Float32。结果越小,字符串越相似。
函数 ngramDistanceCaseInsensitive
、ngramDistanceUTF8
、ngramDistanceCaseInsensitiveUTF8
提供了该函数的不区分大小写和/或 UTF-8 变体。
语法
参数
返回值
- 介于 0 和 1 之间的值,表示两个字符串之间的相似度。 Float32
实现细节
如果常量 needle
或 haystack
参数大小超过 32Kb,该函数将抛出异常。如果任何非常量的 haystack
或 needle
参数大小超过 32Kb,则距离始终为 1。
示例
两个字符串越相似,结果就越接近 0(相同)。
查询:
结果:
两个字符串之间的相似度越小,结果就越大。
查询:
结果:
ngramDistanceCaseInsensitive
提供 ngramDistance 的不区分大小写变体。
语法
参数
返回值
- 介于 0 和 1 之间的值,表示两个字符串之间的相似度。 Float32
示例
使用 ngramDistance,字母大小写的差异会影响相似度值:
查询:
结果:
使用 ngramDistanceCaseInsensitive 时,大小写被忽略,因此两个仅在大小写上不同的相同字符串现在将返回较低的相似度值:
查询:
结果:
ngramDistanceUTF8
提供 ngramDistance 的 UTF-8 变体。假设 needle
和 haystack
字符串是 UTF-8 编码字符串。
语法
参数
返回值
- 介于 0 和 1 之间的值,表示两个字符串之间的相似度。 Float32
示例
查询:
结果:
ngramDistanceCaseInsensitiveUTF8
提供 ngramDistanceUTF8 的不区分大小写变体。
语法
参数
返回值
- 介于 0 和 1 之间的值,表示两个字符串之间的相似度。 Float32
示例
查询:
结果:
ngramSearch
类似于 ngramDistance
,但计算 needle
字符串与 haystack
字符串之间的非对称差异,即从 needle 中的 n-gram 数量减去相同的 n-gram 数量,并通过 needle n-gram 的数量进行标准化。返回一个介于 0 和 1 之间的 Float32。结果越大,needle
在 haystack
中的可能性越大。此函数在模糊字符串搜索中非常有用。另请参见函数 soundex
。
函数 ngramSearchCaseInsensitive
、ngramSearchUTF8
、ngramSearchCaseInsensitiveUTF8
提供了该函数的不区分大小写和/或 UTF-8 变体。
语法
参数
返回值
- 介于 0 和 1 之间的值,表示
needle
在haystack
中的可能性。 Float32
实现细节
UTF-8 变体使用 3-gram 距离。这些不是完全公平的 n-gram 距离。我们使用 2 字节哈希来哈希 n-gram,然后计算这些哈希表之间的(非)对称差异 - 可能会发生碰撞。在 UTF-8 不区分大小写格式中,我们不使用公平的 tolower
函数 - 我们将每个代码点字节的第 5 位(从零开始)设为零,并在字节数大于 1 时将第 0 字节的第一位设为零 - 这适用于拉丁文和大多数西里尔字母。
示例
查询:
结果:
ngramSearchCaseInsensitive
提供 ngramSearch 的不区分大小写变体。
语法
参数
返回值
- 介于 0 和 1 之间的值,表示
needle
在haystack
中的可能性。 Float32
结果越大,needle
在 haystack
中的可能性越大。
示例
查询:
结果:
ngramSearchUTF8
提供 ngramSearch 的 UTF-8 变体,在该变体中,needle
和 haystack
假定为 UTF-8 编码字符串。
语法
参数
返回值
- 介于 0 和 1 之间的值,表示
needle
在haystack
中的可能性。 Float32
结果越大,needle
在 haystack
中的可能性越大。
示例
查询:
结果:
ngramSearchCaseInsensitiveUTF8
提供 ngramSearchUTF8 的不区分大小写变体。
语法
参数
返回值
- 介于 0 和 1 之间的值,表示
needle
在haystack
中的可能性。 Float32
结果越大,needle
在 haystack
中的可能性越大。
示例
查询:
结果:
countSubstrings
返回子字符串 needle
在字符串 haystack
中出现的次数。
函数 countSubstringsCaseInsensitive
和 countSubstringsCaseInsensitiveUTF8
提供不区分大小写和不区分大小写 + UTF-8 的变体。
语法
参数
haystack
— 进行搜索的字符串。 字符串 或 枚举。needle
— 要搜索的子字符串。 字符串。start_pos
– 在haystack
中开始搜索的位置(以 1 为基数)。 UInt。可选。
返回值
- 出现次数。 UInt64。
示例
结果:
含有 start_pos
参数的示例:
结果:
countSubstringsCaseInsensitive
返回子字符串 needle
在字符串 haystack
中出现的次数。忽略大小写。
语法
参数
haystack
— 进行搜索的字符串。 字符串 或 枚举。needle
— 要搜索的子字符串。 字符串。start_pos
– 在haystack
中开始搜索的位置(以 1 为基数)。 UInt。可选。
返回值
- 出现次数。 UInt64。
示例
查询:
结果:
含有 start_pos
参数的示例:
查询:
结果:
countSubstringsCaseInsensitiveUTF8
返回子字符串 needle
在字符串 haystack
中出现的次数。忽略大小写,并假设 haystack
是 UTF8 字符串。
语法
参数
haystack
— 进行搜索的 UTF-8 字符串。 字符串 或 枚举。needle
— 要搜索的子字符串。 字符串。start_pos
– 在haystack
中开始搜索的位置(以 1 为基数)。 UInt。可选。
返回值
- 出现次数。 UInt64。
示例
查询:
结果:
含有 start_pos
参数的示例:
查询:
结果:
countMatches
返回 pattern
在 haystack
中的正则表达式匹配次数。
语法
参数
haystack
— 要搜索的字符串。 字符串。pattern
— 使用 re2 正则表达式语法 的正则表达式。 字符串。
返回值
- 匹配次数。 UInt64。
示例
结果:
结果:
countMatchesCaseInsensitive
返回 haystack
中的正则表达式匹配次数,类似于 countMatches
,但匹配时忽略大小写。
语法
参数
haystack
— 要搜索的字符串。 字符串。pattern
— 使用 re2 正则表达式语法 的正则表达式。 字符串。
返回值
- 匹配次数。 UInt64。
示例
查询:
结果:
regexpExtract
提取 haystack
中匹配正则表达式模式并对应于正则组索引的第一个字符串。
语法
别名: REGEXP_EXTRACT(haystack, pattern[, index])
。
参数
haystack
— 要匹配正则表达式模式的字符串。 字符串。pattern
— 字符串,正则表达式,必须是常量。 字符串。index
– 一个大于或等于 0 的整数,默认值为 1。它表示要提取的正则组。 UInt 或 Int。可选。
返回值
pattern
可以包含多个正则组,index
指示要提取的正则组。索引为 0 意味着匹配整个正则表达式。 字符串。
示例
结果:
hasSubsequence
如果 needle
是 haystack
的子序列,则返回 1,否则返回 0。
字符串的子序列是可以通过删除零个或多个元素而不改变其余元素顺序从给定字符串派生出来的序列。
语法
参数
返回值
- 如果 needle 是 haystack 的子序列,则返回 1,否则返回 0。 UInt8。
示例
查询:
结果:
hasSubsequenceCaseInsensitive
与 hasSubsequence 相同,但不区分大小写。
语法
参数
返回值
- 如果 needle 是 haystack 的子序列,则返回 1,否则返回 0。 UInt8。
示例
查询:
结果:
hasSubsequenceUTF8
与 hasSubsequence 相同,但假设 haystack
和 needle
是 UTF-8 编码的字符串。
语法
参数
返回值
- 如果 needle 是 haystack 的子序列,则返回 1,否则返回 0。 UInt8。
示例
查询:
结果:
hasSubsequenceCaseInsensitiveUTF8
与 hasSubsequenceUTF8 相同,但不区分大小写。
语法
参数
返回值
- 如果 needle 是 haystack 的子序列,则返回 1,否则返回 0。 UInt8。
示例
查询:
结果:
hasToken
如果给定的 token 存在于 haystack 中,则返回 1,否则返回 0。
语法
参数
返回值
- 如果 token 存在于 haystack 中,则返回 1,否则返回 0。 UInt8。
实现细节
token 必须是常量字符串。支持 tokenbf_v1 索引特殊化。
示例
查询:
hasTokenOrNull
如果给定的 token 存在,返回 1;如果不存在,则返回 0;如果 token 格式不正确,则返回 null。
语法
参数
返回值
- 如果 token 存在于 haystack 中,则返回 1;如果不存在,则返回 0;如果 token 格式不正确,则返回 null。
实现细节
token 必须是常量字符串。支持 tokenbf_v1 索引特殊化。
示例
若 hasToken
在不合格式的 token 上抛出错误,hasTokenOrNull
在不合格式的 token 上返回 null
。
查询:
hasTokenCaseInsensitive
如果给定的 token 存在于 haystack 中,则返回 1,否则返回 0。忽略大小写。
语法
参数
返回值
- 如果 token 存在于 haystack 中,则返回 1,否则返回 0。 UInt8。
实现细节
token 必须是常量字符串。支持 tokenbf_v1 索引特殊化。
示例
查询:
hasTokenCaseInsensitiveOrNull
如果给定的 token 存在于 haystack 中,则返回 1,否则返回 0。忽略大小写,如果 token 格式不正确,则返回 null。
语法
参数
返回值
实现细节
token 必须是常量字符串。支持 tokenbf_v1 索引特殊化。
示例
若 hasTokenCaseInsensitive
在不合格式的 token 上抛出错误,hasTokenCaseInsensitiveOrNull
在不合格式的 token 上返回 null
。
查询: