我正在 postgres 中实现全文搜索。
我想搜索我系统中的所有帖子。帖子全文索引是帖子标题和帖子正文的合并。
我有两种方法可以做到这一点:
- 在 posts 表中创建一个 tsvector 列,触发对其的更新。
- 使用包含索引数据的 post_id 和 tsvector 列创建第二个表 (posts_search)。
- 创建一个简单的杜松子酒索引...(不可能,因为我的现实世界问题需要多个表中的数据作为索引)
考虑到我有时需要按表中的其他属性(如等)过滤搜索,什么会表现得更好deleted_at is null
。
将 tsvector 列与数据保持在同一个表中(副作用选择 * 现在很糟糕)还是单独的表(副作用,需要连接,索引过滤很复杂)是更好的方法吗?