【问题标题】:Searching text for a list of a phrases in Redshift在 Redshift 中搜索短语列表的文本
【发布时间】:2018-08-09 22:22:29
【问题描述】:

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

示例: 搜索列表 - 'at bat', 'at ball'

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

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

它也匹配部分术语。例子-在击球。我也尝试了以下方法,

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

我没有在我应该得到匹配的任何行上得到匹配。在 Redshift 中搜索整个单词短语的最佳方法是什么? text_field 全部小写。

【问题讨论】:

标签: regex amazon-redshift


【解决方案1】:

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

建议改用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;

【讨论】:

    猜你喜欢
    • 2014-11-08
    • 2015-08-28
    • 2018-06-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多