💾

BigQueryでまとめて曖昧検索をする

2023/07/10に公開

BigQueryを使っている際に、「ある項目に、"ABC"または"CDE"という文字列を含む」という絞り込みを行いたい際に、次のようにORでくくっていかないといけないのは、件数が増えていくと非常に書くのが面倒になります。

WHERE 
{Content} like '%ABC%' OR {Content} like '%CDE%' 

WHERE句をANDでくくらないといけないのは、

そこで、次のようにARRAYと正規表現の検索を用いることで、曖昧検索+複数条件が可能になります。

WITH t_search AS(

# Like検索したい単語一覧
SELECT ["ABC","CDE"] as word_list

)

SELECT
*
 FROM `{PROJECT}.{DATASET}.{TABLE}`
WHERE IF(REGEXP_EXTRACT({Content}, (SELECT ARRAY_TO_STRING(word_list,"|") FROM t_search)) is not null, True, False)

Discussion