在文本中搜索Redshift

时间:2018-08-09 22:22:30

标签: regex amazon-redshift

我正在尝试搜索文本字段,以检查搜索列表中的任何短语是否在文本字段中。如果它们整体存在,则查询应返回True,否则应返回false。

示例: 搜索列表-“蝙蝠”,“球”

当前,如果我在Redshift中使用以下正则表达式,

SELECT text_field ~ 'at bat|at ball' FROM table

它也可以部分匹配。示例-击球。我也尝试了以下方法,

SELECT text_field ~ '(^|\\W)(at bat|at ball)(\\W|$)' FROM table

并且我没有在应该获取匹配项的任何行上获取匹配项。在Redshift中搜索整个单词短语的最佳方法是什么? text_field均为小写。

1 个答案:

答案 0 :(得分:0)

~波浪号)运算符支持一组有限的正则表达式语法。

建议改用REGEXP_INSTR函数。 https://docs.aws.amazon.com/redshift/latest/dg/REGEXP_INSTR.html

select venuename, regexp_instr(venuename,'[cC]ent(er|re)$') 
from venue 
where regexp_instr(venuename,'[cC]ent(er|re)$') > 0 
limit 5;