Postgresql Postgres-使用3+;带有to_tsvector的列

Postgresql Postgres-使用3+;带有to_tsvector的列,postgresql,full-text-search,database-indexes,Postgresql,Full Text Search,Database Indexes,Postgres全文搜索文档中的所有示例都显示了通过连接2列来创建索引,但我无法解决如何使用3+列来实现这一点。博士后文档中的示例: to_tsvector(title || ' ' || body) 例如,如果我有另一个应通过名为description的列进行搜索,则此语法似乎不像我预期的那样工作: to_tsvector(title || ' ' || body || ' ' || description) 当我尝试时,它会产生如下索引: to_tsvector('english'::r

Postgres全文搜索文档中的所有示例都显示了通过连接2列来创建索引,但我无法解决如何使用3+列来实现这一点。博士后文档中的示例:

to_tsvector(title || ' ' || body)
例如,如果我有另一个应通过名为
description
的列进行搜索,则此语法似乎不像我预期的那样工作:

to_tsvector(title || ' ' || body || ' ' || description)
当我尝试时,它会产生如下索引:

to_tsvector('english'::regconfig, ((("CompanyName" || ' '::text) || "Title") || ' '::text) || "Description")
CompanyName
Title
块中似乎有一组额外的偏执主题


关于这里的语法应该是什么有什么想法吗?我很难找到任何关于使用更多列的相关文档,这些列包含
to_tsvector

您的索引非常好,在查询中使用相同的表达式时都会用到

索引表达式不是以文本形式存储,而是以解析树结构形式存储。这样,如果您重命名一个使用过的列,它就不会破坏索引


字符串连接运算符
|
是左关联的,因此括号中的表达式与您最初编写的表达式相同(除了使表达式
不可变所需的配置
英语
,但我想您忘了这一点).

您的索引非常好,无论何时在查询中使用相同的表达式,都将使用该索引

索引表达式不是以文本形式存储,而是以解析树结构形式存储。这样,如果您重命名一个使用过的列,它就不会破坏索引

字符串连接运算符
|
是左关联的,因此括号中的表达式与您最初编写的表达式相同(除了使表达式
不可变所需的配置
英语
,但我想您可能忘了这一点)。

密切相关,在dba.SE上:密切相关,在dba.SE上: