gpt4 book ai didi

Postgresql 向量搜索根据单词外观

转载 作者:行者123 更新时间:2023-11-29 13:58:31 25 4
gpt4 key购买 nike

让我们先设置上下文:

  • 我们的数据库是 postgres 8.4.20
  • 我的表格包含一个非常大的全名列表。
  • 这些名称只能在一列中。
  • 我们正在使用向量来搜索此表。
  • 我们需要快速搜索。

现在的问题:我可以非常快速地搜索整个表格,而且它似乎按预期工作。当您要搜索的主题有 2 个姓氏时,就会出现问题,例如:

  • 拉蒙弗洛雷斯弗洛雷斯

  • 埃内斯托·莫拉莱斯·莫拉莱斯

    在这种特殊情况下,它将带来数据库中包含“Ramón Flores”或“Ernesto Morales”的每条记录。

我正在寻找的是能够只带来包含“Ramón Flores Flores”或“Ernesto Morales Morales”的记录。我在想的是创建另一个包含每条记录统计信息的列,并添加一些 WHERE 子句以在每个单词只出现一次时选择 ONLY。

提前致谢:)

[编辑] 进度说明#1:好吧,我正在尝试 ts_rank 使这些结果具有一定意义,然后我使用 WHERE 子句 > 0.1。虽然正在帮助我缩小这些结果的范围,但这还不是一个完整的解决方案。我会继续研究:)

最佳答案

虽然 ts_rank 提供了某种替代方案来解决这个问题……似乎无法仅使用 postgres 来实现我想要实现的目标。

ts_rank 当我们面对一个包含 2 或 3 个相同单词的字符串时(一旦你“向量化”它们;如果那是一个单词),它的行为会有些奇怪,所以,在一天结束时你需要当您发现这 2 或 3 个相同的单词时,比较这些字符串并使用不同的 ts_rank 规则。

我的主程序是用 PHP 编写的,所以我最终使用该层来比较我的话并使用正确的规则。

我仍然希望有人能帮助我找到更好的方法。

关于Postgresql 向量搜索根据单词外观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26599686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com