在 mysql 中我们有
SOUNDEX()
和
类似的声音
用于相关/错误拼写或在查询中匹配的单词
BigQuery中有类似的东西吗? BigQuery可以用于此类查询吗?
答案 0 :(得分:1)
我已经检查了" Google BigQuery Analytics"书,不,BigQuery没有像#34; SOUNDEX()" (至少在出版时)。
您可能想要检查cloudSQL,它是托管在云上的mysql服务器。我知道你可以在cloudSQL中使用mysql的一些函数,但值得研究。
答案 1 :(得分:1)
使用JavaScript中的BigQuery User-Defined Functions (UDF),您可以自己实现SOUNDEX函数。
这是BigQuery的SQL语句,用于计算SOUNDEX:
#standardSQL
CREATE TEMP FUNCTION SOUNDEX(name STRING)
RETURNS STRING
LANGUAGE js AS """
if (name == null) return null;
let s = [];
let si = 1;
let c;
// ABCDEFGHIJKLMNOPQRSTUVWXYZ
let mappings = "01230120022455012623010202";
s[0] = name[0].toUpperCase();
for(let i = 1, l = name.length; i < l; i++) {
c = (name[i].toUpperCase()).charCodeAt(0) - 65;
if(c < 0 || c > 25) { continue; }
if(mappings[c] == '0') { continue; }
if(mappings[c] != s[si-1]) {
s[si] = mappings[c];
si++;
}
if(si > 3) { break; }
}
if(si <= 3) {
while(si <= 3) {
s[si] = '0';
si++;
}
}
return s.join("");
""";
SELECT SOUNDEX("John Doe"), SOUNDEX("Jon Do")
信用:我从Chris Webb blog发布的here中提取了原始JavaScript代码,并略微更改了编码语法。
答案 2 :(得分:1)