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

Dre*_*w R 3 postgresql

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

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

给

ERROR: syntax error at or near "||"

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

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

Jak*_*nia 6

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

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