postgresql - 创建同义词字典以在 PostgreSQL 中添加而不是替换单词
问题描述
我正在构建一个应用程序,其中我使用 PostgreSQL 的内置 FTS 添加了全文搜索功能。该应用程序列出了印度的共同基金。在某些情况下,共同基金公司被收购并更改名称。我想让人们使用旧名称进行搜索,以防他们不知道更改。例如,当 DHFL 基金被 PGIM 收购时,所有基金都从 DHFL 更名为 PGIM。
为此,我创建了一个同义词词典,在其中添加了 PGIM 作为 DHFL 的同义词。
但是,我发现这只是将 DHFL 替换为 PGIM。这意味着在我的查询中不再返回一些仍然保留 DHFL 名称的旧基金,并带有单词 dhfl。
是否存在同义词添加一个词而不是替换它的选项,这样 DHFL 会同时搜索 DHFL 和 PGIM?
解决方案
您必须将新字典与to_tsvector
和一起使用to_tsquery
。然后在两者中所有出现的 DHFL 都将被 PGIM 替换,搜索任一术语将找到任一字符串。它们将被视为同义词,这就是您想要的。
推荐阅读
- html - 如何在页面中设置多种背景颜色?
- firebase - 使用 Firebase 可调用函数时如何检索用户的身份验证数据?
- javascript - 将 CSS 不透明度应用于父级,但不应用于子级
- java - Kafka POM 依赖问题 - ClassNotFoundException: org.apache.kafka.test.TestCondition
- android - 单个 .html 文件上的 Android WebView 给出“net::ERR_CACHE_MISS”
- ansible - Jinja2 列表中的项目更改为大写
- netlogo - 如何从 x 轴上直线上存在的海龟中获取随机选择的海龟的“仅 x 坐标”?
- php - 分享到 Facebook 时我的 url 数据丢失
- html - Flexbox justify-content: space-around; 不工作..?
- c# - 从 GMap.NET.GMapControl 获取不可见的图像