Server IP : 104.21.38.3 / Your IP : 172.70.92.197 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /www/server/mysql/src/mysql-test/suite/innodb_fts/r/ |
Upload File : |
SELECT @@innodb_ft_server_stopword_table; @@innodb_ft_server_stopword_table NULL SELECT @@innodb_ft_enable_stopword; @@innodb_ft_enable_stopword 1 SELECT @@innodb_ft_user_stopword_table; @@innodb_ft_user_stopword_table NULL SET NAMES utf8; # Test 1 : default latin1_swedish_ci CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200) ) ENGINE=InnoDB; INSERT IGNORE INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('LṒVE'); CREATE FULLTEXT INDEX ft_idx ON articles(title); SELECT * FROM articles WHERE MATCH (title) AGAINST ('lòve' IN NATURAL LANGUAGE MODE); id title 1 love 2 LOVE 3 lòve 4 LÒVE CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB; INSERT INTO user_stopword VALUES('lòve'); SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword'; DROP INDEX ft_idx ON articles; CREATE FULLTEXT INDEX ft_idx ON articles(title); SELECT * FROM articles WHERE MATCH (title) AGAINST ('lòve' IN NATURAL LANGUAGE MODE); id title SELECT * FROM articles WHERE MATCH (title) AGAINST ('love' IN NATURAL LANGUAGE MODE); id title DROP TABLE articles; DROP TABLE user_stopword; # Test 2 : latin1_general_ci CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200) ) ENGINE=InnoDB DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci; INSERT IGNORE INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('LṒVE'); call mtr.add_suppression("InnoDB: user stopword table test/user_stopword does not exist."); CREATE FULLTEXT INDEX ft_idx ON articles(title); SELECT * FROM articles WHERE MATCH (title) AGAINST ('lòve' IN NATURAL LANGUAGE MODE); id title 3 lòve 4 LÒVE CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci; INSERT INTO user_stopword VALUES('lòve'); SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword'; DROP INDEX ft_idx ON articles; CREATE FULLTEXT INDEX ft_idx ON articles(title); SELECT * FROM articles WHERE MATCH (title) AGAINST ('lòve' IN NATURAL LANGUAGE MODE); id title SELECT * FROM articles WHERE MATCH (title) AGAINST ('love' IN NATURAL LANGUAGE MODE); id title 1 love 2 LOVE DROP TABLE articles; DROP TABLE user_stopword; # Test 3 : latin1_spanish_ci CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200) ) ENGINE=InnoDB DEFAULT CHARACTER SET latin1 COLLATE latin1_spanish_ci; INSERT IGNORE INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('LṒVE'); CREATE FULLTEXT INDEX ft_idx ON articles(title); SELECT * FROM articles WHERE MATCH (title) AGAINST ('lòve' IN NATURAL LANGUAGE MODE); id title 1 love 2 LOVE 3 lòve 4 LÒVE 5 löve 6 LÖVE 7 løve 8 LØVE CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB DEFAULT CHARACTER SET latin1 COLLATE latin1_spanish_ci; INSERT INTO user_stopword VALUES('lòve'); SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword'; DROP INDEX ft_idx ON articles; CREATE FULLTEXT INDEX ft_idx ON articles(title); SELECT * FROM articles WHERE MATCH (title) AGAINST ('lòve' IN NATURAL LANGUAGE MODE); id title SELECT * FROM articles WHERE MATCH (title) AGAINST ('love' IN NATURAL LANGUAGE MODE); id title DROP TABLE articles; DROP TABLE user_stopword; # Test 4 : utf8_general_ci CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200) ) ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; INSERT INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('LṒVE'); CREATE FULLTEXT INDEX ft_idx ON articles(title); SELECT * FROM articles WHERE MATCH (title) AGAINST ('lòve' IN NATURAL LANGUAGE MODE); id title 1 love 2 LOVE 3 lòve 4 LÒVE 5 löve 6 LÖVE 9 lṓve 10 LṒVE CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; INSERT INTO user_stopword VALUES('lòve'); SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword'; DROP INDEX ft_idx ON articles; CREATE FULLTEXT INDEX ft_idx ON articles(title); SELECT * FROM articles WHERE MATCH (title) AGAINST ('lòve' IN NATURAL LANGUAGE MODE); id title SELECT * FROM articles WHERE MATCH (title) AGAINST ('love' IN NATURAL LANGUAGE MODE); id title DROP TABLE articles; DROP TABLE user_stopword; # Test 5 : utf8_unicode_ci CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200) ) ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_swedish_ci; INSERT INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('LṒVE'); CREATE FULLTEXT INDEX ft_idx ON articles(title); SELECT * FROM articles WHERE MATCH (title) AGAINST ('lòve' IN NATURAL LANGUAGE MODE); id title 1 love 2 LOVE 3 lòve 4 LÒVE 9 lṓve 10 LṒVE CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_swedish_ci; INSERT INTO user_stopword VALUES('lòve'); SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword'; DROP INDEX ft_idx ON articles; CREATE FULLTEXT INDEX ft_idx ON articles(title); SELECT * FROM articles WHERE MATCH (title) AGAINST ('lòve' IN NATURAL LANGUAGE MODE); id title SELECT * FROM articles WHERE MATCH (title) AGAINST ('love' IN NATURAL LANGUAGE MODE); id title DROP TABLE articles; DROP TABLE user_stopword; # Test 6 : utf8_unicode_ci CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200) ) ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; INSERT INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('LṒVE'); CREATE FULLTEXT INDEX ft_idx ON articles(title); SELECT * FROM articles WHERE MATCH (title) AGAINST ('lòve' IN NATURAL LANGUAGE MODE); id title 1 love 2 LOVE 3 lòve 4 LÒVE 5 löve 6 LÖVE 9 lṓve 10 LṒVE CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci; INSERT INTO user_stopword VALUES('lòve'); SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword'; DROP INDEX ft_idx ON articles; CREATE FULLTEXT INDEX ft_idx ON articles(title); SELECT * FROM articles WHERE MATCH (title) AGAINST ('lòve' IN NATURAL LANGUAGE MODE); id title SELECT * FROM articles WHERE MATCH (title) AGAINST ('love' IN NATURAL LANGUAGE MODE); id title DROP TABLE articles; DROP TABLE user_stopword; # Test 7 : gb2312_chinese_ci CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200) ) ENGINE=InnoDB DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci; INSERT INTO articles (title) VALUES ('相亲相爱'),('怜香惜爱'),('充满可爱'),('爱恨交织'); CREATE FULLTEXT INDEX ft_idx ON articles(title); SELECT * FROM articles WHERE MATCH (title) AGAINST ('相亲相爱' IN NATURAL LANGUAGE MODE); id title 1 相亲相爱 CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci; INSERT INTO user_stopword VALUES('相亲相爱'); SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword'; DROP INDEX ft_idx ON articles; CREATE FULLTEXT INDEX ft_idx ON articles(title); SELECT * FROM articles WHERE MATCH (title) AGAINST ('相亲相爱' IN NATURAL LANGUAGE MODE); id title 1 相亲相爱 SELECT * FROM articles WHERE MATCH (title) AGAINST ('怜香惜爱' IN NATURAL LANGUAGE MODE); id title 2 怜香惜爱 DROP TABLE articles; DROP TABLE user_stopword; # Test 8 : test shutdown to check if stopword still works CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200) ) ENGINE=InnoDB; INSERT IGNORE INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('LṒVE'); CREATE FULLTEXT INDEX ft_idx ON articles(title); SELECT * FROM articles WHERE MATCH (title) AGAINST ('lòve' IN NATURAL LANGUAGE MODE); id title 1 love 2 LOVE 3 lòve 4 LÒVE CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB; INSERT INTO user_stopword VALUES('lòve'); SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword'; DROP INDEX ft_idx ON articles; CREATE FULLTEXT INDEX ft_idx ON articles(title); SELECT * FROM articles WHERE MATCH (title) AGAINST ('lòve' IN NATURAL LANGUAGE MODE); id title SELECT * FROM articles WHERE MATCH (title) AGAINST ('love' IN NATURAL LANGUAGE MODE); id title # Shutdown and restart mysqld # restart SET NAMES utf8; INSERT IGNORE INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('LṒVE'); SELECT * FROM articles WHERE MATCH (title) AGAINST ('lòve' IN NATURAL LANGUAGE MODE); id title SELECT * FROM articles WHERE MATCH (title) AGAINST ('love' IN NATURAL LANGUAGE MODE); id title DROP TABLE articles; DROP TABLE user_stopword; # Test 9 : drop user stopwrod table,test shutdown to check if it works CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200) ) ENGINE=InnoDB; INSERT IGNORE INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('LṒVE'); CREATE FULLTEXT INDEX ft_idx ON articles(title); SELECT * FROM articles WHERE MATCH (title) AGAINST ('lòve' IN NATURAL LANGUAGE MODE); id title 1 love 2 LOVE 3 lòve 4 LÒVE CREATE TABLE user_stopword(value varchar(30)) ENGINE = InnoDB; INSERT INTO user_stopword VALUES('lòve'); SET GLOBAL innodb_ft_server_stopword_table = 'test/user_stopword'; DROP INDEX ft_idx ON articles; CREATE FULLTEXT INDEX ft_idx ON articles(title); SELECT * FROM articles WHERE MATCH (title) AGAINST ('lòve' IN NATURAL LANGUAGE MODE); id title SELECT * FROM articles WHERE MATCH (title) AGAINST ('love' IN NATURAL LANGUAGE MODE); id title DROP TABLE user_stopword; # Shutdown and restart mysqld # restart SET NAMES utf8; INSERT IGNORE INTO articles (title) VALUES ('love'),('LOVE'),('lòve'),('LÒVE'),('löve'),('LÖVE'),('løve'),('LØVE'), ('lṓve'),('LṒVE'); SELECT * FROM articles WHERE MATCH (title) AGAINST ('lòve' IN NATURAL LANGUAGE MODE); id title 11 love 12 LOVE 13 lòve 14 LÒVE SELECT * FROM articles WHERE MATCH (title) AGAINST ('love' IN NATURAL LANGUAGE MODE); id title 11 love 12 LOVE 13 lòve 14 LÒVE DROP TABLE articles; SET SESSION innodb_ft_enable_stopword=1; SET GLOBAL innodb_ft_server_stopword_table=default; SET SESSION innodb_ft_user_stopword_table=default;