DorisDB使用MATCH_ANY异常

在使用DorisDB过程中,为表建立了倒排索引,但是按照官网示例无法使用MATCH_ALL 或者MATCH_ANY进行查询;
异常报错:
SELECT * FROM hackernews_1m WHERE comment MATCH_ALL 'OLAP' ;
执行失败: Error Failed to execute sql: org.apache.doris.common.AnalysisException: errCode = 2, detailMessage = Syntax error in line 1: SELECT * FROM hackernews_1m WHERE comment MATCH_ALL 'OLAP' ; ^ Encountered: IDENTIFIER Expected: ||, COMMA

官方示例:

img

使用like查询正常,表建立与官网一样

img

img

                              Session  System          Log        QueryProfile                        Configuration
                                                                                                                    Q Error                                     X
                                                                                                                          Failed to execute sql:org.apache.dol
  编辑器格式化
                                                                                                                             ckernews1mWHEREcomment MATCHA
  当前数据库:patenteval_other
                                                                                                                          Encountered:IDENTIFIEF
      SELECT      count()FROM hackernews_1m WHERE                             comment MATCH ANY ‘OLTP’;
                                                                                                                          Expected:,COMMA
   O执行
  执行结果
  8
  执行失败:Error Failed toexecutesql:org.apache.doris.common.AnalysisException:errCode=2,detailMessage=Syntax errorin line1:.ckernews_1mWHEREcomment MATCHANYOLTP'Encountered:IDENTIFIER
  Expected:Il.COMMA
   SELECT count()FROM hackernews_1m WHERE                                   comment MATCH_ANY ‘OLTP'
     执行时间:                   Oms
                                                                                                                                Total Oitems         1>20/page

该回答引用GPTᴼᴾᴱᴺᴬᴵ
在DorisDB中,倒排索引的查询可以使用 IN 关键字或 = 进行查询,而不是使用 MATCH_ALL 或 MATCH_ANY。

例如,查询 hackernews_1m 表中 comment 列包含 'OLAP' 的所有行可以使用以下查询语句:

SELECT * FROM hackernews_1m WHERE comment IN ('OLAP');


或者

SELECT * FROM hackernews_1m WHERE comment = 'OLAP';


注意,在使用 IN 关键字进行查询时,需要将查询条件用括号括起来。如果要查询多个关键字,可以将它们用逗号隔开,如下所示:

SELECT * FROM hackernews_1m WHERE comment IN ('OLAP', 'DorisDB');


或者

SELECT * FROM hackernews_1m WHERE comment = 'OLAP' OR comment = 'DorisDB';


需要注意的是,如果表中的列包含中文,需要将查询条件用单引号括起来。例如:

SELECT * FROM hackernews_1m WHERE title = '中文标题';