Postgresql基于词的相关性向量搜索
让我们先设置上下文:Postgresql基于词的相关性向量搜索,postgresql,full-text-search,tsvector,Postgresql,Full Text Search,Tsvector,让我们先设置上下文: 我们的数据库是postgres 8.4.20 我的表格包含一个非常大的全名列表 这些名称只能在一列中 我们使用向量来搜索这个表 我们需要快速搜索 现在问题来了: 我可以很快地搜索整个表,而且它似乎按预期工作。当您搜索的主题有两个姓氏时,会出现问题,如: 拉蒙·弗洛雷斯·弗洛雷斯 欧内斯托·莫拉莱斯·莫拉莱斯 在这种特殊情况下,它将带来数据库中包含“Ramón Flores”或“Ernesto Morales”的所有记录 我想要的是能够只带来包含“拉蒙·弗洛雷斯·
- 我们的数据库是postgres 8.4.20
- 我的表格包含一个非常大的全名列表
- 这些名称只能在一列中
- 我们使用向量来搜索这个表
- 我们需要快速搜索
- 拉蒙·弗洛雷斯·弗洛雷斯
- 欧内斯托·莫拉莱斯·莫拉莱斯 在这种特殊情况下,它将带来数据库中包含“Ramón Flores”或“Ernesto Morales”的所有记录
我会继续研究:)而ts_rank提供了某种替代方案来处理这个问题。。。仅仅使用postgres似乎不可能实现我想要实现的目标 t_-rank当我们面对一个包含2或3个相同单词的字符串时(一旦你将它们“矢量化”,如果这甚至是一个单词),会表现出某种奇怪的行为。因此,在一天结束时,当你发现这2或3个相同的单词时,你需要比较这些字符串并使用不同的t_-rank规则 我的主程序是用PHP编写的,因此我最终使用该层来比较我的单词并使用正确的规则 我仍然希望有人能帮我找到更好的方法