mariadb 使用指定“WITH PARSER ngram”的FULLTEXT索引声明创建表不起作用

utugiqy6  于 2022-12-04  发布在  其他
关注(0)|答案(1)|浏览(496)

我在Windows 10上使用XAMPP 8.1.10和InnoDB表,我试图使用ngram解析器创建一个带有FULLTEXT索引的MariaDB表,以支持中文、日文和韩文的搜索。
当我尝试这样做时,即使使用MySQL's own website中的完全相同的示例命令,它也会在PHPMyAdmin中出现以下错误:

Error
Static analysis:

1 errors were found during analysis.

A comma or a closing bracket was expected. (near "WITH" at position 158)
SQL query: Copy

CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200), body TEXT, FULLTEXT (title,body) WITH PARSER ngram ) ENGINE=InnoDB CHARACTER SET utf8mb4;

MariaDB said: Documentation

#1128 - Function 'ngram' is not defined

示例命令如下:

CREATE TABLE articles (
      id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
      title VARCHAR(200),
      body TEXT,
      FULLTEXT (title,body) WITH PARSER ngram
    ) ENGINE=InnoDB CHARACTER SET utf8mb4;

如果我从FULLTEXT行中删除“WITH PARSER ngram”,它就可以正常工作,不会出错,但当然不会使用ngram解析器。使用ALTER TABLE命令也不起作用:

ALTER TABLE articles ADD FULLTEXT INDEX ft_index (title,body) WITH PARSER ngram;

给出以下错误:

Error
Static analysis:

1 errors were found during analysis.

A new statement was found, but no delimiter between it and the previous one. (near "WITH" at position 62)
SQL query: Copy

ALTER TABLE articles ADD FULLTEXT INDEX ft_index (title,body) WITH PARSER ngram;

MariaDB said: Documentation

#1128 - Function 'ngram' is not defined

是XAMPP中没有安装ngram解析器,还是我做错了什么?
编辑:显然XAMPP使用了MariaDB,尽管它在XAMPP控制面板和错误消息中说是MySQL。MariaDB还不支持ngram解析器。通过使用本指南https://stackoverflow.com/a/58973750/20394214在XAMPP中将MariaDB替换为MySQL解决了这个问题

v2g6jxz6

v2g6jxz61#

显然XAMPP使用MariaDB,尽管它在XAMPP控制面板和错误消息中说是MySQL。MariaDB还不支持ngram解析器。通过在XAMPP中使用本指南https://stackoverflow.com/a/58973750/20394214将MariaDB替换为MySQL解决

相关问题