Hello I write about the documentation of full-text search.
Section 12.2.2. Creating Indexes https://www.postgresql.org/docs/current/textsearch-tables.html#TEXTSEARCH-TABLES-INDEX wrtites the following: "Another approach is to create a separate tsvector column to hold the output of to_tsvector. To keep this column automatically up to date with its source data, use a stored generated column. This example is a concatenation of title and body, using coalesce to ensure that one field will still be indexed when the other is NULL" Section 12.4.3. Triggers for Automatic Updates https://www.postgresql.org/docs/current/textsearch-features.html#TEXTSEARCH-UPDATE-TRIGGERS writes the following: "When using a separate column to store the tsvector representation of your documents, it is necessary to create a trigger to update the tsvector column when the document content columns change. Two built-in trigger functions are available for this, or you can write your own." Thus, one part of the documentation states that one should use the generated column-based approach and another part states that one should use the trigger-based approach to keep the values in a tsvector column up-to-date. If these solutions are both appropriate, then the documentation should state this. Perhaps something like that? "Another approach is to create a separate tsvector column to hold the output of to_tsvector. It is possible to use a stored generated column to keep this column automatically up to date with its source data. This example is a concatenation of title and body, using coalesce to ensure that one field will still be indexed when the other is NULL" writes the following: "When using a separate column to store the tsvector representation of your documents the column has to be kept up to date with its source data. It is possible to create a trigger to update the tsvector column when the document content columns change. Two built-in trigger functions are available for this, or you can write your own." Best regards Erki Eessaar