让我们首先设置上下文,
现在是问题:我可以非常快地搜索整个表,而且它似乎正在按预期工作。当您正在搜索的主题有两个姓氏时,就会产生这样的问题:
我想要的是能够只带来包含"Ramón Flores Flores“或"Ernesto Morales Morales”的记录。我的想法是创建另一列,包含每条记录的统计信息,并添加一些WHERE子句,仅在每个单词只出现一次时才进行选择。
(预先谢谢:)
编辑进度注释1:,我尝试使用WHERE子句> 0.1给出这些结果,然后使用WHERE子句>0.1。虽然正在帮助我缩小这些结果,但这还不是一个完全的解决办法。我会继续研究:)
发布于 2015-01-15 16:43:12
虽然ts_rank提供了某种替代方案来解决这个问题.仅仅使用postgres似乎不可能实现我正在努力实现的目标。
当我们面对一个包含两个或三个相同单词的字符串时,ts_rank的行为有些奇怪(一旦您将它们“向量化”;如果这甚至是一个单词),因此,在一天结束时,您需要比较这些字符串,并在找到这两个或三个相同的单词时使用不同的ts_rank规则。
我的主程序是用PHP编写的,所以我最终使用了该层来比较我的话并使用正确的规则。
我还是希望有人能帮我找到更好的方法。
https://stackoverflow.com/questions/26599686
复制相似问题