【发布时间】:2011-09-04 10:47:09
【问题描述】:
有没有实现在 MySQL 中搜索关键字的快速字符串匹配算法?例如Aho-Corasick 或任何其他快速字符串匹配算法。
通常 Aho-Corasick 是用 Java 或任何其他编译语言实现的,但应该可以将其编写为 MySQL 中的存储过程。
谢谢!
【问题讨论】:
标签: mysql string-matching
有没有实现在 MySQL 中搜索关键字的快速字符串匹配算法?例如Aho-Corasick 或任何其他快速字符串匹配算法。
通常 Aho-Corasick 是用 Java 或任何其他编译语言实现的,但应该可以将其编写为 MySQL 中的存储过程。
谢谢!
【问题讨论】:
标签: mysql string-matching
由于存储过程是图灵完备的,并且您可以使用“游标”循环遍历表中的记录(可能存在一些现有的“WHERE”原因),因此您可以在存储过程中执行此操作。
存储函数也是可能的。
然而,MySQL 存储例程语言在程序员的可用性和性能方面都非常糟糕,结果不太可能是简单或快速的。
所以你最好写一个 MySQL UDF(你可以用任何语言编写,只要你可以让它看起来像一个 C 库)然后让它来代替。
考虑您的具体要求。我假设带有大量“OR col LIKE ...”标签的查询对您来说效率太低,因为您希望一次匹配数千个模式,对吧?
【讨论】: