Postgres全文索引

m62*_*621 16 postgresql indexing

CREATE INDEX message_fulltext_idx ON feedback USING gin(to_tsvector(message));
Run Code Online (Sandbox Code Playgroud)
ERROR:  functions in index predicate must be marked IMMUTABLE 

怎么避免这个?

kgr*_*ttn 20

您需要包含可选的config参数.没有它,该函数不是不可变的.例如,如果您想要标准的英文文本解析:

CREATE INDEX message_fulltext_idx ON feedback
  USING gin(to_tsvector('english', message));
Run Code Online (Sandbox Code Playgroud)

  • 这是正确的答案.`to_tsvector`的第一种形式将使用来自设置`default_text_search_config`的config参数的默认值.由于这是一个可更改的设置,因此该函数不是不可变的.如果要更改,则基于非mimmutable函数的现有索引将被静默损坏.所以这是被禁止的.请参阅http://www.postgresql.org/docs/current/static/textsearch-tables.html#TEXTSEARCH-TABLES-INDEX. (6认同)