我在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解决了这个问题
1条答案
按热度按时间v2g6jxz61#
显然XAMPP使用MariaDB,尽管它在XAMPP控制面板和错误消息中说是MySQL。MariaDB还不支持ngram解析器。通过在XAMPP中使用本指南https://stackoverflow.com/a/58973750/20394214将MariaDB替换为MySQL解决