postgresql - Postgres全文搜索:如何找到两个或多个关键字的文档?
问题描述
表 A 具有列 Summary,该列使用 GIN 对索引列 tsv 进行索引。
select * from A where to_tsquery('vision & computer') @@ tsv 作为,返回所有具有视觉/视觉和计算机/计算机等的数据...
挑战在于如何从关键字列表中找到具有两个或更多单词的数据。例如,列表是:
- 计算机
- 想象
- 热露
- 卷积
- 谷歌
- classifer 如果文档只有一个关键字,则不应返回结果。有没有办法在不列出所有组合的情况下做到这一点?
试图谷歌但找不到任何东西,所以它有点告诉我用关键字搜索真的很糟糕。
解决方案
FTS 搜索索引对此没有特别规定。
您的选择是将查询扩展为 "6 Choose 2" = 15 piped together pairs 'computer & vision | computer & relu | ... convolution & google | ...'
,或者搜索具有任何术语的文档,然后过滤这些候选者以删除那些没有至少两个条款。
您也许还可以使用 ts_rank,但我不知道您能否可靠地确定应用于分数的阈值。
推荐阅读
- html - 如何在边框角材料上修复 Mat-label
- python - Python TypeError:无法解压不可迭代的布尔对象
- discord - 使用画布 discord.js 创建个人资料图像时出错
- python - Pytorch 的 add_module() 是什么?
- javascript - 如何根据第一个选定值删除 select2 选项
- python - Django:使用 django-tables2 和 django-filter 搜索结果
- python - 在导入模块中的函数之间共享 python 字典的最佳实践
- html - 如何将搜索栏移到顶部?
- javascript - 来自客户端的信号 node.js express 服务器
- python - subprocess.Popen 在 Windows 中工作但在 Ubuntu 中不工作