首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将词典与PostgreSQL全文搜索混合使用

将词典与PostgreSQL全文搜索混合使用
EN

Stack Overflow用户
提问于 2020-07-07 20:08:19
回答 1查看 29关注 0票数 0

我有一个连接查询,我想要搜索帖子和标签。但是,我希望使用english字典搜索帖子,并使用精确的simple匹配来搜索标签。这个是可能的吗?

例如:

代码语言:javascript
复制
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.titleposts.bodytags.name,它们都是字符串。

EN

回答 1

Stack Overflow用户

发布于 2020-07-07 20:55:20

您可以在WHERE子句的不同部分中使用不同的文本搜索配置,这是没有问题的:

代码语言:javascript
复制
WHERE to_tsvector('english', posts.title) @@ to_tsquery('english', 'something')
  AND to_tsvector('simple', tags.name) @@ to_tsquery('simple', 'mytag')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62774947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档