Postgres - 使用 3 + 列 to_tsvector 创建用于全文搜索的索引

Postgres - Create index for full text search using 3 + columns with to_tsvector

Postgres 全文搜索文档中的所有示例都显示通过连接 2 列创建索引,但我无法解决如何使用 3+ 列执行此操作。来自 Postgres 文档的示例:

to_tsvector(title || ' ' || body)

例如,如果我有另一个应该搜索的名为 description 的列,那么这个语法似乎并不像我预期的那样工作:

to_tsvector(title || ' ' || body || ' ' || description)

当我尝试时它会产生这样的索引:

to_tsvector('english'::regconfig, ((("CompanyName" || ' '::text) || "Title") || ' '::text) || "Description")

似乎有一组额外的括号包裹着 CompanyNameTitle 块。

关于这里的语法有什么想法吗?我无法找到有关使用 to_tsvector.

更多列的任何相关文档

您的索引非常好,只要您在查询中使用相同的表达式,就会使用它。

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

字符串连接运算符 || 是左结合的,因此括号内的表达式与您最初编写的表达式相同(除了使表达式 english 所需的配置 english =12=],但我想你只是忘记了)。