【发布时间】:2012-04-19 03:46:27
【问题描述】:
CREATE INDEX message_fulltext_idx ON feedback USING gin(to_tsvector(message));
错误:索引谓词中的函数必须标记为 IMMUTABLE
如何避免这种情况?
【问题讨论】:
标签: postgresql indexing
CREATE INDEX message_fulltext_idx ON feedback USING gin(to_tsvector(message));
错误:索引谓词中的函数必须标记为 IMMUTABLE
如何避免这种情况?
【问题讨论】:
标签: postgresql indexing
您需要包含可选的配置参数。没有它,函数就不是一成不变的。例如,如果你想要标准的英文文本解析:
CREATE INDEX message_fulltext_idx ON feedback
USING gin(to_tsvector('english', message));
【讨论】:
to_tsvector 的第一种形式将使用来自设置default_text_search_config 的配置参数的默认值。由于这是一个可变设置,因此该函数不是一成不变的。如果要更改,基于不可修改函数的现有索引将被静默破坏。所以是禁止的。见postgresql.org/docs/current/static/…。