2012-04-05 16 views
11
CREATE INDEX message_fulltext_idx ON feedback USING gin(to_tsvector(message)); 
 
ERROR: functions in index predicate must be marked IMMUTABLE 

¿Cómo evitar esto?Postgres índice de texto completo

Respuesta

16

Necesita incluir el parámetro de configuración opcional. Sin él, la función no es inmutable. Por ejemplo, si desea el análisis estándar de texto en inglés:

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

Esta es la respuesta correcta. La primera forma de 'to_tsvector' usará un valor predeterminado para el parámetro config que proviene de la configuración' default_text_search_config'. Como se trata de una configuración modificable, la función no es inmutable. Si fuera a cambiar, un índice existente basado en la función no mimonable sería silenciosamente dañado. Entonces está prohibido. Ver http://www.postgresql.org/docs/current/static/textsearch-tables.html#TEXTSEARCH-TABLES-INDEX. – Edmund

Cuestiones relacionadas