所有通过连接2列上创建索引的Postgres的全文搜索的文档显示的例子,但我不能解决如何与3+列做到这一点。从Postgres的文档例如:
to_tsvector(title || ' ' || body)
如果我的例子有,应通过所谓description
搜索另一列,看来我希望这句法不起作用:
to_tsvector(title || ' ' || body || ' ' || description)
这导致了这样的一个指标,当我尝试:
to_tsvector('english'::regconfig, ((("CompanyName" || ' '::text) || "Title") || ' '::text) || "Description")
似乎有一个额外的括号包裹CompanyName
和Title
块。
任何想法是什么语法应该在这里?我无法使用多个列与to_tsvector
找到任何相关文件。
你的指数是相当不错的,只要你在查询中使用相同的表达将被使用。
索引表达式不存储为文本,而是经过解析的树结构。这样,它不会破坏索引,如果你例如重命名使用列。
字符串连接运算符||
是左关联的,所以括号表达式是相同的,你原来写的一个(与被使表达english
所需的配置IMMUTABLE
的例外,但我想你忘记了这一点)。