让我们先设置上下文:
- 我们的数据库是 postgres 8.4.20
- 我的表包含一个非常大的全名列表。
- 这些名称只能在一列中。
- 我们正在使用向量来搜索此表。
- 我们需要快速搜索。
现在的问题是:我可以非常快速地搜索整个表格,而且它似乎按预期工作。当您要搜索的主题有 2 个姓氏时,就会出现问题,例如:
拉蒙弗洛雷斯弗洛雷斯
埃内斯托·莫拉莱斯
在这种特殊情况下,它将带入数据库中包含“Ramón Flores”或“Ernesto Morales”的每条记录。
我正在寻找的是能够只带来包含“Ramón Flores Flores”或“Ernesto Morales Morales”的记录。我在想的是创建另一个包含每条记录的统计信息的列,并添加一些 WHERE 子句以仅在每个单词仅出现一次时选择。
提前致谢 :)
[编辑] 进度说明 #1: 嗯,我尝试使用 ts_rank来赋予这些结果一些意义,然后我使用 WHERE 子句 > 0.1。虽然正在帮助我缩小这些结果的范围,但这还不是一个完整的解决方案。我会继续研究:)