通配符搜索

您可以在对单个词语执行 Basic Text Search 查询时使用通配符。搜索短语时不能使用通配符。

要执行单字符通配符搜索,请在搜索词中使用问号 (?)。单字符通配符搜索将查找匹配替换的单个字符的词语。例如,要搜索词 texttest,请在搜索谓词中使用 te?t

bts_contains(column, 'te?t')

可以将单字符通配符 (?) 用作搜索词中的第一个字符。

多字符通配符搜索

多字符通配符搜索将查找零个或多个字符。

要执行多字符通配符搜索,请在搜索词中使用星号 (*)。例如,要搜索 geogeographygeology,请在搜索谓词中使用 geo*
bts_contains(column, 'geo*')
多字符通配符搜索也可以位于词语中间。例如,搜索词 c*r 将匹配 contourcratercolor 以及任何其他以字母 c 开头且以字母 r 结尾的词语。
bts_contains(column, 'c*r')

但是不能将多字符通配符 (*) 用作搜索词的第一个字符。

如果与通配符查询匹配的索引标记数超过 1024,那么将会收到以下错误:

(BTSB0) - bts clucene error: Too Many Clauses

要解决此问题,您可以进一步限制查询,或者将 max_clause_count 索引参数设置为大于 1024 的数字并重新创建 bts 索引。