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