我有一个 postgresql 数据库,其中包含大约 5000 万个作为地址的字符串条目。字符串的示例是
NIAID, Opportunist Infect Res Branch, Treatment Res Programs, Div Aids, Bethesda, MD USA
PRINCETON UNIV,DEPT PSYCHOL,PRINCETON,NJ 08544
等等
现在我必须检查一个地址是否与大约 30,000 个正则表达式列表中的任何一个匹配。我还需要知道匹配哪个正则表达式。正则表达式的例子是
%umass mem med ctr worcester%worcester%ma%
%darnnouth%
这当然是 postgres 的“LIKE”格式。由于正则表达式匹配不能利用索引(反正不是很多,我已经索引了字段 varchar_pattern_ops),所以这个操作的总运行时间大约是 30000x50 百万。
如果存在任何可以帮助我加快流程的 python 库,我也可以使用 python 进行正则表达式匹配。
谢谢您的帮助!