3

我需要postgresql中最长的公共子序列函数。典型的安装对它不起作用。我在 plpgsql 上写了代码,但运行速度很慢。是否有一些具有此类功能的 postgres 插件(或其他东西)?

编辑:我需要比较 2 个字符串,但不使用 = 运算符,也不喜欢。例如,如果我必须找到 abcba,结果可以是 adbcbdac。为此,我想实现 LCS(最长公共子序列,而不是字符串)

编辑:我找到了一些名为fuzzystrmatch 的postgre 扩展,但它只适用于最大255 字节的文本。有谁知道那个扩展的类似物?

4

1 回答 1

1

我同意 Erwin、Craig 和 Deer Hunter 的观点,您可以通过告诉我们您正在进行什么样的比较来提供更多信息?假设您比较文本文件并且比较完整的行就足够了。那么您能否将最短文件的行与最长文件的行进行比较。比较有三种可能性: 1. 文件 A 中的一行与文件 B 中的任何行都不匹配, 2. 文件 A 中的一行与文件 B 中的一行匹配。 3. 文件 A 中的一行匹配并且两者都匹配行与上一场比赛是连续的。如果是情况 1,请关闭任何打开的对象。如果存在打开的对象,请将其添加到数组中。如果是情况 2 并且没有打开的对象,则创建一个新对象。如果有一个打开的对象,那么它应该是第 3 种情况,因此将行(或行号)添加到打开的对象。

然而,我会用另一种语言执行这种操作,然后是 plpgsql。在我的情况下,它会是 Java 还是 PHP。只需将数据转换为这种类型的语言并完成工作。这些语言更适合这种类型的行动。

于 2012-10-11T09:56:00.350 回答