call mtr.add_suppression("unknown variable 'loose_mecab_rc_file");
call mtr.add_suppression("Fulltext index charset 'big5' doesn't match mecab charset");
call mtr.add_suppression("Mecab: createModel.* failed: param.cpp");
call mtr.add_suppression("Plugin 'mecab' init function returned error");
SHOW STATUS LIKE 'mecab_charset';
Variable_name	Value
mecab_charset	utf8
SET NAMES utf8;
CREATE TABLE page (
page_id int(8) unsigned NOT NULL AUTO_INCREMENT,
page_title varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT '',
PRIMARY KEY (page_id),
FULLTEXT KEY page_title (page_title) WITH PARSER mecab
) ENGINE=InnoDB;
INSERT INTO page VALUES
(1,'ﾚﾓﾅ'),
(2,'SDレモナ'),
(3,'レモナ'),
(4,'データベース管理システム'),
(5,'キム'),
(6,'鉄道100電車'),
(7,'100'),
(8,'ラフィタ・カスティージョ'),
(9,'ツル科_(Sibley)'),
(10,'ツル'),
(11,'鉄道');
SET GLOBAL innodb_ft_aux_table="test/page";
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE;
WORD	FIRST_DOC_ID	LAST_DOC_ID	DOC_COUNT	DOC_ID	POSITION
100	7	8	2	7	6
100	7	8	2	8	0
sd	3	3	1	3	0
sibley	10	10	1	10	11
_(	10	10	1	10	9
キム	6	6	1	6	0
システム	5	5	1	5	24
ツル	10	11	2	10	0
ツル	10	11	2	11	0
データベース	5	5	1	5	0
ラフィタ・カスティージョ	9	9	1	9	0
レモナ	3	4	2	3	2
レモナ	3	4	2	4	0
管理	5	5	1	5	18
鉄道	7	12	2	7	0
鉄道	7	12	2	12	0
電車	7	7	1	7	9
ﾚﾓﾅ	2	2	1	2	0
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
WORD	FIRST_DOC_ID	LAST_DOC_ID	DOC_COUNT	DOC_ID	POSITION
SHOW CREATE TABLE page;
Table	Create Table
page	CREATE TABLE `page` (
  `page_id` int(8) unsigned NOT NULL AUTO_INCREMENT,
  `page_title` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT '',
  PRIMARY KEY (`page_id`),
  FULLTEXT KEY `page_title` (`page_title`) /*!50100 WITH PARSER `mecab` */ 
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=latin1
SELECT * FROM page WHERE MATCH(page_title) AGAINST("ﾚﾓﾅ" IN BOOLEAN MODE);
page_id	page_title
1	ﾚﾓﾅ
SELECT * FROM page WHERE MATCH(page_title) AGAINST("キムショウカン" IN BOOLEAN MODE);
page_id	page_title
SELECT * FROM page WHERE MATCH(page_title) AGAINST("100" IN BOOLEAN MODE);
page_id	page_title
6	鉄道100電車
7	100
SELECT * FROM page WHERE MATCH(page_title) AGAINST("ツル*" IN BOOLEAN MODE);
page_id	page_title
9	ツル科_(Sibley)
10	ツル
SELECT * FROM page WHERE MATCH(page_title) AGAINST("ラフィタ・カスティージョ");
page_id	page_title
8	ラフィタ・カスティージョ
SELECT * FROM page WHERE MATCH(page_title) AGAINST("ラフィタ・カスティージョ" IN BOOLEAN MODE);
page_id	page_title
SELECT * FROM page WHERE MATCH(page_title) AGAINST("+ラフィタ・カスティージョ +データベース" IN BOOLEAN MODE);
page_id	page_title
SELECT * FROM page WHERE MATCH(page_title) AGAINST("+ラフィタ・カスティージョ +(データベース)" IN BOOLEAN MODE);
page_id	page_title
SELECT * FROM page WHERE MATCH(page_title) AGAINST("-ラフィタ・カスティージョ +(データベース)" IN BOOLEAN MODE);
page_id	page_title
4	データベース管理システム
SELECT * FROM page WHERE MATCH(page_title) AGAINST("ラフィタ・カスティージョ 鉄道" IN BOOLEAN MODE);
page_id	page_title
6	鉄道100電車
11	鉄道
SELECT * FROM page WHERE MATCH(page_title) AGAINST("<ラフィタ・カスティージョ >鉄道" IN BOOLEAN MODE);
page_id	page_title
6	鉄道100電車
11	鉄道
SELECT * FROM page WHERE MATCH(page_title) AGAINST('鉄道');
page_id	page_title
6	鉄道100電車
11	鉄道
SELECT * FROM page WHERE MATCH(page_title) AGAINST('鉄道' WITH QUERY EXPANSION);
page_id	page_title
6	鉄道100電車
7	100
11	鉄道
ALTER TABLE page add column c1 varchar(100) CHARACTER SET utf8 DEFAULT 'ﾚﾓﾅ';
ALTER TABLE page ADD FULLTEXT INDEX idx1 (page_title,c1) WITH PARSER mecab;
SELECT * FROM page WHERE MATCH(page_title,c1) AGAINST('ﾚﾓﾅ');
page_id	page_title	c1
1	ﾚﾓﾅ	ﾚﾓﾅ
2	SDレモナ	ﾚﾓﾅ
3	レモナ	ﾚﾓﾅ
4	データベース管理システム	ﾚﾓﾅ
5	キム	ﾚﾓﾅ
6	鉄道100電車	ﾚﾓﾅ
7	100	ﾚﾓﾅ
8	ラフィタ・カスティージョ	ﾚﾓﾅ
9	ツル科_(Sibley)	ﾚﾓﾅ
10	ツル	ﾚﾓﾅ
11	鉄道	ﾚﾓﾅ
SELECT * FROM page WHERE MATCH(page_title,c1) AGAINST('-ﾚﾓﾅ' IN BOOLEAN MODE);
page_id	page_title	c1
DROP TABLE page;
CREATE TABLE page (
page_id int(8) unsigned NOT NULL AUTO_INCREMENT,
page_title varchar(255) CHARACTER SET big5 NOT NULL DEFAULT '',
PRIMARY KEY (page_id)
)ENGINE=InnoDB;
INSERT INTO page VALUES (1,'日本');
CREATE FULLTEXT INDEX ft_idx ON page(page_title) WITH PARSER mecab;
Warnings:
Warning	124	InnoDB rebuilding table to add column FTS_DOC_ID
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE;
WORD	FIRST_DOC_ID	LAST_DOC_ID	DOC_COUNT	DOC_ID	POSITION
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
WORD	FIRST_DOC_ID	LAST_DOC_ID	DOC_COUNT	DOC_ID	POSITION
INSERT INTO page VALUES (2,'日本');
ERROR HY000: Fulltext index charset 'big5' doesn't match mecab charset 'utf8'.
SELECT * FROM page WHERE MATCH(page_title) AGAINST('日本');
ERROR HY000: Fulltext index charset 'big5' doesn't match mecab charset 'utf8'.
DROP TABLE page;
SET NAMES utf8mb4;
CREATE TABLE page (
page_id int(8) unsigned NOT NULL AUTO_INCREMENT,
page_title varchar(255) CHARACTER SET utf8mb4 NOT NULL DEFAULT '',
PRIMARY KEY (page_id),
FULLTEXT KEY page_title (page_title) WITH PARSER mecab
) ENGINE=InnoDB;
INSERT INTO page VALUES
(1,'😃ﾚﾓﾅ'),
(2,'鉄道😄'),
(3,'鉄道😊100電車');
SET GLOBAL innodb_ft_aux_table="test/page";
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_CACHE;
WORD	FIRST_DOC_ID	LAST_DOC_ID	DOC_COUNT	DOC_ID	POSITION
100	4	4	1	4	10
鉄道	3	4	2	3	0
鉄道	3	4	2	4	0
電車	4	4	1	4	13
ﾚﾓﾅ	2	2	1	2	4
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
WORD	FIRST_DOC_ID	LAST_DOC_ID	DOC_COUNT	DOC_ID	POSITION
SHOW CREATE TABLE page;
Table	Create Table
page	CREATE TABLE `page` (
  `page_id` int(8) unsigned NOT NULL AUTO_INCREMENT,
  `page_title` varchar(255) CHARACTER SET utf8mb4 NOT NULL DEFAULT '',
  PRIMARY KEY (`page_id`),
  FULLTEXT KEY `page_title` (`page_title`) /*!50100 WITH PARSER `mecab` */ 
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
SELECT * FROM page WHERE MATCH(page_title) AGAINST("ﾚﾓﾅ" IN BOOLEAN MODE);
page_id	page_title
1	😃ﾚﾓﾅ
SELECT * FROM page WHERE MATCH(page_title) AGAINST('鉄道');
page_id	page_title
2	鉄道😄
3	鉄道😊100電車
SELECT * FROM page WHERE MATCH(page_title) AGAINST('鉄道😄');
page_id	page_title
2	鉄道😄
3	鉄道😊100電車
SELECT * FROM page WHERE MATCH(page_title) AGAINST('鉄道' WITH QUERY EXPANSION);
page_id	page_title
3	鉄道😊100電車
2	鉄道😄
DROP TABLE page;
SET GLOBAL innodb_ft_aux_table=default;
UNINSTALL PLUGIN mecab;
