Postgres - 如何使用加权向量创建文本搜索索引?

时间:2016-01-31 20:12:59

标签: postgresql

Postgres不允许以这种方式连接向量:

CREATE INDEX pgweb_idx ON pgweb USING
gin(
    setweight(to_tsvector('english', title),'A') ||
    setweight(to_tsvector('english', body), 'B')
);

给出

ERROR: syntax error at or near "||"

它允许在select或update语句中使用此语法。

有没有办法在不向表中添加tvector列的情况下创建加权全文索引?

1 个答案:

答案 0 :(得分:3)

我无法提供一个很好的解释为什么在这种情况下会发生这种情况,但你可以通过在表达式周围添加额外的括号来解决这个问题

CREATE INDEX pgweb_idx ON pgweb USING
gin(
    (setweight(to_tsvector('english', title),'A') ||  setweight(to_tsvector('english', body), 'B'))
);