您可以通过创建
text_pattern_ops
运算符类别索引来为模式与先前查询匹配的字符串建立索引,只要这些值以小写形式索引即可。
CREATE INDEX moves_title_pattern ON movies (
(lower(title) text_pattern_ops);
我们使用了,
text_pattern_ops
因为标题是文本类型。如果需要指数VARCHAR处理,字符,或名称,使用相关的OPS: ,varchar_pattern_ops
,bpchar_pattern_ops
和name_pattern_ops
。
我发现该示例确实令人困惑。为什么这样做有用?
如果列是文本类型,在用作搜索值之前,是否会将其他类型(varchar,char,name)强制转换为文本?
该索引的行为与使用默认运算符的索引有何不同?
CREATE INDEX moves_title_pattern ON movies (lower(title));