Wil*_*nes 14 postgresql full-text-search multiple-tables tsvector
这可能是一个非常简单的问题,所以提前道歉,但我对数据库的使用非常新.
我想让Postgres在多个连接表中运行全文搜索.想象一下像模型用户,具有相关模型UserProfile和UserInfo.搜索仅适用于用户,但包含来自UserProfile和UserInfo的信息.
我打算在搜索中使用杜松子酒索引.但是,我不清楚我是否需要在User表中使用单独的tsvector列来保存表中的聚合tsvector,并设置触发器以使其保持最新.或者,如果可以创建没有tsvector列的索引,只要任何相关表中的任何相关字段发生更改,它就会保持最新状态.此外,任何关于创建所有这些的命令的语法的提示也将非常受欢迎.
你最好的答案可能是在每个表中都有一个单独的tsvector列(当然有一个索引).如果将数据聚合到共享的tsvector,那么只要各个更新,就会在该共享的tsvector上创建大量更新.
每个表需要一个索引.然后当你查询它时,显然你需要多个WHERE子句,每个字段一个.然后,PostgreSQL将自动确定使用哪种索引组合来提供最快的结果 - 可能使用位图扫描.它会使您的查询更复杂(因为您需要多个列匹配子句),但这样可以灵活地只查询您想要的情况下的某些字段.
您无法创建一个跟踪多个表的索引.为此,您需要在每个表上使用单独的tsvector列和触发器来更新它.
| 归档时间: |
|
| 查看次数: |
4252 次 |
| 最近记录: |