concat两个postgresql tsvector字段,从单独的表开始,进入单个postgresql视图,以启用加入的全文搜索

concat两个postgresql tsvector字段,从单独的表开始,进入单个postgresql视图,以启用加入的全文搜索,第1张

概述我有一个 postgresql视图,它包含3个表的组合: create view search_view as select u.first_name, u.last_name, a.notes, a.summary, a.search_index from user as u, assessor as a, connector as c where a.connector_id = c.i 我有一个 postgresql视图,它包含3个表的组合: @H_301_1@create vIEw search_vIEw as select u.first_name,u.last_name,a.notes,a.summary,a.search_index from user as u,assessor as a,connector as c where a.connector_ID = c.ID and c.user_ID = u.ID;

但是,我需要将3个表中的2个的tsvector字段连接到视图中的单个tsvector字段,该字段提供跨4个字段的全文搜索:2个来自一个表,2个来自另一个.

我已经阅读了文档,声明我可以使用concat运算符来组合两个tsvector字段,但我不确定这在语法上是什么样的,以及是否存在此实现的潜在问题.

我正在寻找将两个tsvector字段从单独的表连接到一个视图中的示例代码,并且还评论这是在postgresql中是一个好的还是坏的做法.

我想知道同样的事情.我认为我们不应该像这样组合来自多个表的tsvector.最佳解决方案是:

>在每个表中创建一个新的tsv列(用户,评估者,连接器)
>使用您要搜索的所有文本更新每个表中的新tsv列.例如,在用户表中,您将更新连接first_name和last_name列的所有记录的tsv列.
>在新的tsv列上创建索引,这比在各个列上建立索引要快
>像往常一样运行查询,让Postgres“思考”使用哪些索引.它可能会也可能不会在涉及多个表的查询中使用所有索引.
>使用ANALYZE和EXPLAIN命令来查看Postgres如何利用新索引进行特定查询,这将使您深入了解加速事情.

这至少是我的方法.我一直在做很多阅读,并发现人们没有将多个表中的数据组合到tsvector中.实际上我认为这不可行,在创建tsvector时可能只能使用当前表的列.

总结

以上是内存溢出为你收集整理的concat两个postgresql tsvector字段,从单独的表开始,进入单个postgresql视图,以启用加入的全文搜索全部内容,希望文章能够帮你解决concat两个postgresql tsvector字段,从单独的表开始,进入单个postgresql视图,以启用加入的全文搜索所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1164473.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存