【问题标题】:Postgres fulltext indexPostgres全文索引
【发布时间】:2012-04-19 03:46:27
【问题描述】:
CREATE INDEX message_fulltext_idx ON feedback USING gin(to_tsvector(message));
错误:索引谓词中的函数必须标记为 IMMUTABLE

如何避免这种情况?

【问题讨论】:

    标签: postgresql indexing


    【解决方案1】:

    您需要包含可选的配置参数。没有它,函数就不是一成不变的。例如,如果你想要标准的英文文本解析:

    CREATE INDEX message_fulltext_idx ON feedback
      USING gin(to_tsvector('english', message));
    

    【讨论】:

    • 这是正确答案。 to_tsvector 的第一种形式将使用来自设置default_text_search_config 的配置参数的默认值。由于这是一个可变设置,因此该函数不是一成不变的。如果要更改,基于不可修改函数的现有索引将被静默破坏。所以是禁止的。见postgresql.org/docs/current/static/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    相关资源
    最近更新 更多