我有一个连接查询,我想要搜索帖子和标签。但是,我希望使用english字典搜索帖子,并使用精确的simple匹配来搜索标签。这个是可能的吗?
例如:
SELECT * FROM
(
SELECT posts.*,
setweight(to_tsvector('english', coalesce(title, '')), 'A') ||
setweight(to_tsvector('english', coalesce(body, '')), 'B') ||
setweight(to_tsvector('simple', coalesce((string_agg(tags.name, ' ')), '')), 'B') AS document
FROM "posts"
LEFT OUTER JOIN "posts_tags" ON "posts_tags"."post_id" = "posts"."id"
LEFT OUTER JOIN "tags" ON "tags"."id" = "posts_tags"."tag_id"
GROUP BY posts.id
) p_search
WHERE (document @@ plainto_tsquery('english', 'sometag')) 我想搜索posts.title、posts.body和tags.name,它们都是字符串。
发布于 2020-07-07 20:55:20
您可以在WHERE子句的不同部分中使用不同的文本搜索配置,这是没有问题的:
WHERE to_tsvector('english', posts.title) @@ to_tsquery('english', 'something')
AND to_tsvector('simple', tags.name) @@ to_tsquery('simple', 'mytag')https://stackoverflow.com/questions/62774947
复制相似问题