开发者社区 > 数据库 > 数据仓库 > 正文

云数据仓库ADB MATCH (text1) fuzzy (text2) AS score也会报错?

云数据仓库ADB MATCH (text1) fuzzy (text2) AS score
也会报错:
Unexpected symbol [text1, text2] in projectNode =>
是什么情况呢?

展开
收起
-Feng、冯冯 2024-04-24 08:18:01 15 0
1 条回答
写回答
取消 提交回答
  • 您所描述的错误提示“Unexpected symbol [text1, text2] in projectNode =>”表明,在使用MATCH() Fuzzy()函数进行全文检索时,语法结构出现了问题。具体来说,可能是您在表达式中使用了“MATCH (text1) fuzzy (text2) AS score”这样的格式,这与官方文档中定义的正确语法不符。
    根据提供的知识链接[1][2][3],正确的语法应该是:
    SELECT *
    FROM table_name
    WHERE match (column_name) fuzzy('term') [max_edits(n)];

    其中:

    table_name 是您要查询的表名。
    column_name 是您要在该表中进行全文检索的列名。
    'term' 是您要模糊匹配的文本。
    [max_edits(n)] 是可选参数,用于指定最大编辑距离(Levenshtein Edit Distance)。如果不指定,默认编辑距离可能为1或由系统设定。

    例如,按照知识链接中的示例二[3]:

    SELECT id, content
    FROM tbl_fulltext_demo
    WHERE MATCH(content_standard) FUZZY('hangzou') max_edits(1);
    

    这个查询会在tbl_fulltext_demo表的content_standard列中查找与字符串'hangzou'编辑距离为1的模糊匹配项。
    综上所述,您需要调整您的SQL语句,确保其符合MATCH() Fuzzy()函数的正确语法结构。如果您希望为模糊匹配的结果赋值给一个名为score的列,可以尝试使用别名的方式,但请注意整个MATCH() Fuzzy()表达式应置于WHERE子句中,用于筛选满足条件的数据行。具体的赋值方式可能需要结合您的实际需求和ADB MySQL数据库的具体语法来实现。
    参考知识链接:

    [1]
    [2]
    [3]
    此回答整理自钉群“云数据仓库ADB-开发者群”

    2024-04-24 15:19:41
    赞同 1 展开评论 打赏

相关电子书

更多
PostgresChina2018_陶征霖_新一代数据仓库OushuDB架构剖析 立即下载
MaxCompute数据仓库数据转换实践 立即下载
基于数加的大数据仓库解决方案 立即下载