config root man

Current Path : /usr/opt/mysql57/mysql-test/suite/innodb_fts/r/

FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64
Upload File :
Current File : //usr/opt/mysql57/mysql-test/suite/innodb_fts/r/ngram.result

SET NAMES utf8;
# Test Case 1: Test Chinese with GB2312 Charset.
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT
) ENGINE=InnoDB DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;
INSERT INTO articles (title, body) VALUES
('数据库是数据的结构化集合','它可以是任何东西'),
('从简单的购物清单到画展','或企业网络中的海量数据');
ALTER TABLE articles ADD FULLTEXT INDEX (title, body) WITH PARSER ngram;
Warnings:
Warning	124	InnoDB rebuilding table to add column FTS_DOC_ID
INSERT INTO articles (title, body) VALUES
('要想将数据添加到数据库','或访问、处理计算机数据库中保存的数据'),
('需要使用数据库管理系统','计算机是处理大量数据的理想工具');
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据');
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
2	从简单的购物清单到画展	或企业网络中的海量数据
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数*' IN BOOLEAN MODE);
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
2	从简单的购物清单到画展	或企业网络中的海量数据
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('+数据库 -计算机' IN BOOLEAN MODE);
id	title	body
1	数据库是数据的结构化集合	它可以是任何东西
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('+(数据库 处理) -计算机' IN BOOLEAN MODE);
id	title	body
1	数据库是数据的结构化集合	它可以是任何东西
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库');
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
2	从简单的购物清单到画展	或企业网络中的海量数据
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库' IN BOOLEAN MODE);
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('"数据库"' IN BOOLEAN MODE);
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
DROP TABLE articles;
# Test Case 2: Test Chinese with GBK Charset.
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT
) ENGINE=InnoDB DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
INSERT INTO articles (title, body) VALUES
('数据库是数据的结构化集合','它可以是任何东西'),
('从简单的购物清单到画展','或企业网络中的海量数据');
ALTER TABLE articles ADD FULLTEXT INDEX (title, body) WITH PARSER ngram;
Warnings:
Warning	124	InnoDB rebuilding table to add column FTS_DOC_ID
INSERT INTO articles (title, body) VALUES
('要想将数据添加到数据库','或访问、处理计算机数据库中保存的数据'),
('需要使用数据库管理系统','计算机是处理大量数据的理想工具');
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据');
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
2	从简单的购物清单到画展	或企业网络中的海量数据
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数*' IN BOOLEAN MODE);
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
2	从简单的购物清单到画展	或企业网络中的海量数据
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('+数据库 -计算机' IN BOOLEAN MODE);
id	title	body
1	数据库是数据的结构化集合	它可以是任何东西
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('+(数据库 处理) -计算机' IN BOOLEAN MODE);
id	title	body
1	数据库是数据的结构化集合	它可以是任何东西
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库');
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
2	从简单的购物清单到画展	或企业网络中的海量数据
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库' IN BOOLEAN MODE);
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('"数据库"' IN BOOLEAN MODE);
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
DROP TABLE articles;
# Test Case 3: Test Chinese with UTF8 Charset.
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT
) ENGINE=InnoDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
INSERT INTO articles (title, body) VALUES
('数据库是数据的结构化集合','它可以是任何东西'),
('从简单的购物清单到画展','或企业网络中的海量数据');
ALTER TABLE articles ADD FULLTEXT INDEX (title, body) WITH PARSER ngram;
Warnings:
Warning	124	InnoDB rebuilding table to add column FTS_DOC_ID
INSERT INTO articles (title, body) VALUES
('要想将数据添加到数据库','或访问、处理计算机数据库中保存的数据'),
('需要使用数据库管理系统','计算机是处理大量数据的理想工具');
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据');
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
2	从简单的购物清单到画展	或企业网络中的海量数据
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数*' IN BOOLEAN MODE);
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
2	从简单的购物清单到画展	或企业网络中的海量数据
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('+数据库 -计算机' IN BOOLEAN MODE);
id	title	body
1	数据库是数据的结构化集合	它可以是任何东西
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('+(数据库 处理) -计算机' IN BOOLEAN MODE);
id	title	body
1	数据库是数据的结构化集合	它可以是任何东西
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库');
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
2	从简单的购物清单到画展	或企业网络中的海量数据
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库' IN BOOLEAN MODE);
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('"数据库"' IN BOOLEAN MODE);
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
DROP TABLE articles;
# Test Case 4: Test Chinese with gb18030 Charset.
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT
) ENGINE=InnoDB DEFAULT CHARSET=gb18030 COLLATE=gb18030_chinese_ci;
INSERT INTO articles (title, body) VALUES
('数据库是数据的结构化集合','它可以是任何东西'),
('从简单的购物清单到画展','或企业网络中的海量数据');
ALTER TABLE articles ADD FULLTEXT INDEX `idx1` (title, body) WITH PARSER ngram;
Warnings:
Warning	124	InnoDB rebuilding table to add column FTS_DOC_ID
INSERT INTO articles (title, body) VALUES
('要想将数据添加到数据库','或访问、处理计算机数据库中保存的数据'),
('需要使用数据库管理系统','计算机是处理大量数据的理想工具');
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据');
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
2	从简单的购物清单到画展	或企业网络中的海量数据
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数*' IN BOOLEAN MODE);
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
2	从简单的购物清单到画展	或企业网络中的海量数据
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('+数据库 -计算机' IN BOOLEAN MODE);
id	title	body
1	数据库是数据的结构化集合	它可以是任何东西
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('+(数据库 处理) -计算机' IN BOOLEAN MODE);
id	title	body
1	数据库是数据的结构化集合	它可以是任何东西
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库');
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
2	从简单的购物清单到画展	或企业网络中的海量数据
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库' IN BOOLEAN MODE);
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('"数据库"' IN BOOLEAN MODE);
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库' WITH QUERY EXPANSION);
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
2	从简单的购物清单到画展	或企业网络中的海量数据
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
1	数据库是数据的结构化集合	它可以是任何东西
ALTER TABLE articles DROP INDEX `idx1`;
SELECT * FROM articles;
id	title	body
1	数据库是数据的结构化集合	它可以是任何东西
2	从简单的购物清单到画展	或企业网络中的海量数据
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
DROP TABLE articles;
# Test Case 5: Test Japanese with UJIS Charset.
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT
) ENGINE=InnoDB DEFAULT CHARACTER SET ujis COLLATE ujis_japanese_ci;
INSERT INTO articles (title, body) VALUES
('データベースは、構造化されたコレクションです','それは何もすることができます'),
('シンプルな買い物リストから画像ギャラリーへ','または企業ネットワーク内のデータの膨大な量');
ALTER TABLE articles ADD FULLTEXT INDEX (title, body) WITH PARSER ngram;
Warnings:
Warning	124	InnoDB rebuilding table to add column FTS_DOC_ID
INSERT INTO articles (title, body) VALUES
('データベースにデータを追加するには','コンピュータのデータベースに格納されているアクセス、およびプロセスデータ'),
('データベース管理システムを使用する必要が','コンピュータは、大量のデータを処理するための理想的なツールである');
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('データ');
id	title	body
3	データベースにデータを追加するには	コンピュータのデータベースに格納されているアクセス、およびプロセスデータ
4	データベース管理システムを使用する必要が	コンピュータは、大量のデータを処理するための理想的なツールである
1	データベースは、構造化されたコレクションです	それは何もすることができます
2	シンプルな買い物リストから画像ギャラリーへ	または企業ネットワーク内のデータの膨大な量
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('デ*' IN BOOLEAN MODE);
id	title	body
3	データベースにデータを追加するには	コンピュータのデータベースに格納されているアクセス、およびプロセスデータ
4	データベース管理システムを使用する必要が	コンピュータは、大量のデータを処理するための理想的なツールである
1	データベースは、構造化されたコレクションです	それは何もすることができます
2	シンプルな買い物リストから画像ギャラリーへ	または企業ネットワーク内のデータの膨大な量
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('+データベース -コンピュータ' IN BOOLEAN MODE);
id	title	body
1	データベースは、構造化されたコレクションです	それは何もすることができます
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('+(データベース 処理) -コンピュータ' IN BOOLEAN MODE);
id	title	body
1	データベースは、構造化されたコレクションです	それは何もすることができます
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('データベース');
id	title	body
3	データベースにデータを追加するには	コンピュータのデータベースに格納されているアクセス、およびプロセスデータ
4	データベース管理システムを使用する必要が	コンピュータは、大量のデータを処理するための理想的なツールである
1	データベースは、構造化されたコレクションです	それは何もすることができます
2	シンプルな買い物リストから画像ギャラリーへ	または企業ネットワーク内のデータの膨大な量
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('データベース' IN BOOLEAN MODE);
id	title	body
3	データベースにデータを追加するには	コンピュータのデータベースに格納されているアクセス、およびプロセスデータ
4	データベース管理システムを使用する必要が	コンピュータは、大量のデータを処理するための理想的なツールである
1	データベースは、構造化されたコレクションです	それは何もすることができます
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('"データベース"' IN BOOLEAN MODE);
id	title	body
3	データベースにデータを追加するには	コンピュータのデータベースに格納されているアクセス、およびプロセスデータ
4	データベース管理システムを使用する必要が	コンピュータは、大量のデータを処理するための理想的なツールである
1	データベースは、構造化されたコレクションです	それは何もすることができます
DROP TABLE articles;
# Test Case 6: Test Korean with EUCKR Charset.
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT
) ENGINE=InnoDB DEFAULT CHARACTER SET euckr COLLATE euckr_korean_ci;
INSERT INTO articles (title, body) VALUES
('데이터베이스의 구조 모음입니다','그것은 무엇이든 될 수 있습니다'),
('간단한 쇼핑 목록에서 사진 갤러리','또는 기업 네트워크에서 데이터의 엄청난 양의');
ALTER TABLE articles ADD FULLTEXT INDEX (title, body) WITH PARSER ngram;
Warnings:
Warning	124	InnoDB rebuilding table to add column FTS_DOC_ID
INSERT INTO articles (title, body) VALUES
('데이터베이스에 데이터를 추가하려면','액세스, 프로세스 데이터를 컴퓨터 데이터베이스에 저장'),
('데이터베이스 관리 시스템을 사용해야합니다','컴퓨터는 많은 양의 데이터를 처리하기위한 이상적인 도구입니다');
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('데이터');
id	title	body
3	데이터베이스에 데이터를 추가하려면	액세스, 프로세스 데이터를 컴퓨터 데이터베이스에 저장
4	데이터베이스 관리 시스템을 사용해야합니다	컴퓨터는 많은 양의 데이터를 처리하기위한 이상적인 도구입니다
1	데이터베이스의 구조 모음입니다	그것은 무엇이든 될 수 있습니다
2	간단한 쇼핑 목록에서 사진 갤러리	또는 기업 네트워크에서 데이터의 엄청난 양의
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('데*' IN BOOLEAN MODE);
id	title	body
3	데이터베이스에 데이터를 추가하려면	액세스, 프로세스 데이터를 컴퓨터 데이터베이스에 저장
4	데이터베이스 관리 시스템을 사용해야합니다	컴퓨터는 많은 양의 데이터를 처리하기위한 이상적인 도구입니다
1	데이터베이스의 구조 모음입니다	그것은 무엇이든 될 수 있습니다
2	간단한 쇼핑 목록에서 사진 갤러리	또는 기업 네트워크에서 데이터의 엄청난 양의
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('+데이터베이스 -컴퓨터' IN BOOLEAN MODE);
id	title	body
1	데이터베이스의 구조 모음입니다	그것은 무엇이든 될 수 있습니다
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('+(데이터베이스 처리) -컴퓨터' IN BOOLEAN MODE);
id	title	body
1	데이터베이스의 구조 모음입니다	그것은 무엇이든 될 수 있습니다
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('데이터베이스');
id	title	body
3	데이터베이스에 데이터를 추가하려면	액세스, 프로세스 데이터를 컴퓨터 데이터베이스에 저장
4	데이터베이스 관리 시스템을 사용해야합니다	컴퓨터는 많은 양의 데이터를 처리하기위한 이상적인 도구입니다
1	데이터베이스의 구조 모음입니다	그것은 무엇이든 될 수 있습니다
2	간단한 쇼핑 목록에서 사진 갤러리	또는 기업 네트워크에서 데이터의 엄청난 양의
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('데이터베이스' IN BOOLEAN MODE);
id	title	body
3	데이터베이스에 데이터를 추가하려면	액세스, 프로세스 데이터를 컴퓨터 데이터베이스에 저장
4	데이터베이스 관리 시스템을 사용해야합니다	컴퓨터는 많은 양의 데이터를 처리하기위한 이상적인 도구입니다
1	데이터베이스의 구조 모음입니다	그것은 무엇이든 될 수 있습니다
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('"데이터베이스"' IN BOOLEAN MODE);
id	title	body
3	데이터베이스에 데이터를 추가하려면	액세스, 프로세스 데이터를 컴퓨터 데이터베이스에 저장
4	데이터베이스 관리 시스템을 사용해야합니다	컴퓨터는 많은 양의 데이터를 처리하기위한 이상적인 도구입니다
1	데이터베이스의 구조 모음입니다	그것은 무엇이든 될 수 있습니다
DROP TABLE articles;
# Test Case 7: Test different ngram token size.
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT
) ENGINE=InnoDB DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;
INSERT INTO articles (title, body) VALUES
('数据库是数据的结构化集合','它可以是任何东西'),
('从简单的购物清单到画展','或企业网络中的海量数据'),
('要想将数据添加到数据库','或访问、处理计算机数据库中保存的数据'),
('需要使用数据库管理系统','计算机是处理大量数据的理想工具');
CREATE FULLTEXT INDEX ft_index ON articles(title, body) WITH PARSER ngram;
Warnings:
Warning	124	InnoDB rebuilding table to add column FTS_DOC_ID
# restart: --ngram_token_size=1
SELECT  @@ngram_token_size;
@@ngram_token_size
1
INSERT INTO articles (title, body) VALUES
('数据库管理系统','计算机是处理大量数据的理想工具');
# Some results are incorrect due to ngram_token_size mismatch
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数' IN BOOLEAN MODE);
id	title	body
5	数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据' IN BOOLEAN MODE);
id	title	body
5	数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库' IN BOOLEAN MODE);
id	title	body
5	数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库管理' IN BOOLEAN MODE);
id	title	body
5	数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库管理系统' IN BOOLEAN MODE);
id	title	body
5	数据库管理系统	计算机是处理大量数据的理想工具
DROP INDEX ft_index ON articles;
DELETE FROM articles WHERE title = '数据库管理系统';
CREATE FULLTEXT INDEX ft_index ON articles(title, body) WITH PARSER ngram;
# Results are correct after rebuilding the index
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数' IN BOOLEAN MODE);
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
2	从简单的购物清单到画展	或企业网络中的海量数据
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据' IN BOOLEAN MODE);
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
2	从简单的购物清单到画展	或企业网络中的海量数据
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库' IN BOOLEAN MODE);
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库管理' IN BOOLEAN MODE);
id	title	body
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库管理系统' IN BOOLEAN MODE);
id	title	body
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
# restart: --ngram_token_size=3
SELECT  @@ngram_token_size;
@@ngram_token_size
3
INSERT INTO articles (title, body) VALUES
('数据库管理系统','计算机是处理大量数据的理想工具');
# Some results are incorrect due to ngram_token_size mismatch
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数' IN BOOLEAN MODE);
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
2	从简单的购物清单到画展	或企业网络中的海量数据
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据' IN BOOLEAN MODE);
id	title	body
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库' IN BOOLEAN MODE);
id	title	body
5	数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库管理' IN BOOLEAN MODE);
id	title	body
5	数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库管理系统' IN BOOLEAN MODE);
id	title	body
5	数据库管理系统	计算机是处理大量数据的理想工具
DROP INDEX ft_index ON articles;
DELETE FROM articles WHERE title = '数据库管理系统';
CREATE FULLTEXT INDEX ft_index ON articles(title, body) WITH PARSER ngram;
# Results are correct after rebuilding the index
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数' IN BOOLEAN MODE);
id	title	body
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据' IN BOOLEAN MODE);
id	title	body
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库' IN BOOLEAN MODE);
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库管理' IN BOOLEAN MODE);
id	title	body
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库管理系统' IN BOOLEAN MODE);
id	title	body
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
# restart: --ngram_token_size=5
SELECT  @@ngram_token_size;
@@ngram_token_size
5
INSERT INTO articles (title, body) VALUES
('数据库管理系统','计算机是处理大量数据的理想工具');
# Some results are incorrect due to ngram_token_size mismatch
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数' IN BOOLEAN MODE);
id	title	body
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据' IN BOOLEAN MODE);
id	title	body
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库' IN BOOLEAN MODE);
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库管理' IN BOOLEAN MODE);
id	title	body
5	数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库管理系统' IN BOOLEAN MODE);
id	title	body
5	数据库管理系统	计算机是处理大量数据的理想工具
DROP INDEX ft_index ON articles;
DELETE FROM articles WHERE title = '数据库管理系统';
CREATE FULLTEXT INDEX ft_index ON articles(title, body) WITH PARSER ngram;
# Results are correct after rebuilding the index
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数' IN BOOLEAN MODE);
id	title	body
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据' IN BOOLEAN MODE);
id	title	body
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库' IN BOOLEAN MODE);
id	title	body
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库管理' IN BOOLEAN MODE);
id	title	body
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库管理系统' IN BOOLEAN MODE);
id	title	body
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
# restart: --ngram_token_size=7
SELECT  @@ngram_token_size;
@@ngram_token_size
7
INSERT INTO articles (title, body) VALUES
('数据库管理系统','计算机是处理大量数据的理想工具');
# Some results are incorrect due to ngram_token_size mismatch
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数' IN BOOLEAN MODE);
id	title	body
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据' IN BOOLEAN MODE);
id	title	body
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库' IN BOOLEAN MODE);
id	title	body
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库管理' IN BOOLEAN MODE);
id	title	body
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库管理系统' IN BOOLEAN MODE);
id	title	body
5	数据库管理系统	计算机是处理大量数据的理想工具
DROP INDEX ft_index ON articles;
DELETE FROM articles WHERE title = '数据库管理系统';
CREATE FULLTEXT INDEX ft_index ON articles(title, body) WITH PARSER ngram;
# Results are correct after rebuilding the index
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数' IN BOOLEAN MODE);
id	title	body
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据' IN BOOLEAN MODE);
id	title	body
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库' IN BOOLEAN MODE);
id	title	body
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库管理' IN BOOLEAN MODE);
id	title	body
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库管理系统' IN BOOLEAN MODE);
id	title	body
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
# restart: --ngram_token_size=2
SELECT  @@ngram_token_size;
@@ngram_token_size
2
INSERT INTO articles (title, body) VALUES
('数据库管理系统','计算机是处理大量数据的理想工具');
# Some results are incorrect due to ngram_token_size mismatch
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数' IN BOOLEAN MODE);
id	title	body
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据' IN BOOLEAN MODE);
id	title	body
5	数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库' IN BOOLEAN MODE);
id	title	body
5	数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库管理' IN BOOLEAN MODE);
id	title	body
5	数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库管理系统' IN BOOLEAN MODE);
id	title	body
5	数据库管理系统	计算机是处理大量数据的理想工具
DROP INDEX ft_index ON articles;
DELETE FROM articles WHERE title = '数据库管理系统';
CREATE FULLTEXT INDEX ft_index ON articles(title, body) WITH PARSER ngram;
# Results are correct after rebuilding the index
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数' IN BOOLEAN MODE);
id	title	body
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据' IN BOOLEAN MODE);
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
2	从简单的购物清单到画展	或企业网络中的海量数据
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库' IN BOOLEAN MODE);
id	title	body
3	要想将数据添加到数据库	或访问、处理计算机数据库中保存的数据
1	数据库是数据的结构化集合	它可以是任何东西
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库管理' IN BOOLEAN MODE);
id	title	body
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据库管理系统' IN BOOLEAN MODE);
id	title	body
4	需要使用数据库管理系统	计算机是处理大量数据的理想工具
DROP TABLE articles;
# Test Case 8: Test Optimize Table.
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT
) ENGINE=InnoDB DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;
INSERT INTO articles (title, body) VALUES
('数据库是数据的结构化集合','它可以是任何东西'),
('从简单的购物清单到画展','或企业网络中的海量数据');
CREATE FULLTEXT INDEX ft_index ON articles(title, body) WITH PARSER ngram;
Warnings:
Warning	124	InnoDB rebuilding table to add column FTS_DOC_ID
SET GLOBAL innodb_ft_aux_table="test/articles";
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
WORD	FIRST_DOC_ID	LAST_DOC_ID	DOC_COUNT	DOC_ID	POSITION
的购	4	4	1	4	6
的海	4	4	1	4	35
的结	3	3	1	3	12
购物	4	4	1	4	8
它可	3	3	1	3	25
到画	4	4	1	4	16
何东	3	3	1	3	35
画展	4	4	1	4	18
简单	4	4	1	4	2
结构	3	3	1	3	14
量数	4	4	1	4	39
络中	4	4	1	4	31
企业	4	4	1	4	25
物清	4	4	1	4	10
业网	4	4	1	4	27
以是	3	3	1	3	29
中的	4	4	1	4	33
或企	4	4	1	4	23
库是	3	3	1	3	4
构化	3	3	1	3	16
化集	3	3	1	3	18
集合	3	3	1	3	20
据的	3	3	1	3	10
据库	3	3	1	3	2
是任	3	3	1	3	31
是数	3	3	1	3	6
网络	4	4	1	4	29
从简	4	4	1	4	0
单到	4	4	1	4	14
单的	4	4	1	4	4
东西	3	3	1	3	37
海量	4	4	1	4	37
可以	3	3	1	3	27
清单	4	4	1	4	12
任何	3	3	1	3	33
数据	3	4	2	3	0
数据	3	4	2	3	8
数据	3	4	2	4	41
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据');
id	title	body
1	数据库是数据的结构化集合	它可以是任何东西
2	从简单的购物清单到画展	或企业网络中的海量数据
DELETE FROM articles WHERE id = 1;
SET GLOBAL INNODB_OPTIMIZE_FULLTEXT_ONLY=1;
OPTIMIZE TABLE articles;
Table	Op	Msg_type	Msg_text
test.articles	optimize	status	OK
SET GLOBAL INNODB_OPTIMIZE_FULLTEXT_ONLY=default;
SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_INDEX_TABLE;
WORD	FIRST_DOC_ID	LAST_DOC_ID	DOC_COUNT	DOC_ID	POSITION
的购	4	4	1	4	6
的海	4	4	1	4	35
购物	4	4	1	4	8
到画	4	4	1	4	16
画展	4	4	1	4	18
简单	4	4	1	4	2
量数	4	4	1	4	39
络中	4	4	1	4	31
企业	4	4	1	4	25
物清	4	4	1	4	10
业网	4	4	1	4	27
中的	4	4	1	4	33
或企	4	4	1	4	23
网络	4	4	1	4	29
从简	4	4	1	4	0
单到	4	4	1	4	14
单的	4	4	1	4	4
海量	4	4	1	4	37
清单	4	4	1	4	12
数据	4	4	1	4	41
SELECT * FROM articles WHERE
MATCH(title, body) AGAINST('数据');
id	title	body
2	从简单的购物清单到画展	或企业网络中的海量数据
SET GLOBAL innodb_ft_aux_table=default;
DROP TABLE articles;
# Test Case 9: Test Rename Index
INSTALL PLUGIN simple_parser SONAME 'mypluglib.so';
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT
) ENGINE=InnoDB DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;
INSERT INTO articles (title, body) VALUES ('数据的结合','数据库');
CREATE FULLTEXT INDEX ft_1 ON articles(title) WITH PARSER ngram;
Warnings:
Warning	124	InnoDB rebuilding table to add column FTS_DOC_ID
SELECT * FROM articles WHERE MATCH(title) AGAINST('数据');
id	title	body
1	数据的结合	数据库
ALTER TABLE articles RENAME INDEX ft_1 TO ft_2;
INSERT INTO articles (title, body) VALUES ('数据的结合','数据库');
SELECT * FROM articles WHERE MATCH(title) AGAINST('数据');
id	title	body
1	数据的结合	数据库
2	数据的结合	数据库
ALTER TABLE articles RENAME INDEX ft_2 to ft_1,
ADD FULLTEXT INDEX ft_2(body) WITH PARSER simple_parser;
INSERT INTO articles (title, body) VALUES ('数据的结合','数据库');
SELECT * FROM articles WHERE MATCH(title) AGAINST('数据');
id	title	body
1	数据的结合	数据库
2	数据的结合	数据库
3	数据的结合	数据库
SELECT * FROM articles WHERE MATCH(body) AGAINST('数据');
id	title	body
SELECT * FROM articles WHERE MATCH(body) AGAINST('数据库');
id	title	body
1	数据的结合	数据库
2	数据的结合	数据库
3	数据的结合	数据库
ALTER TABLE articles RENAME INDEX ft_2 to ft_1, RENAME INDEX ft_1 to ft_2;
INSERT INTO articles (title, body) VALUES ('数据的结合','数据库');
SELECT * FROM articles WHERE MATCH(title) AGAINST('数据');
id	title	body
1	数据的结合	数据库
2	数据的结合	数据库
3	数据的结合	数据库
4	数据的结合	数据库
SELECT * FROM articles WHERE MATCH(body) AGAINST('数据');
id	title	body
SELECT * FROM articles WHERE MATCH(body) AGAINST('数据库');
id	title	body
1	数据的结合	数据库
2	数据的结合	数据库
3	数据的结合	数据库
4	数据的结合	数据库
DROP TABLE articles;
UNINSTALL PLUGIN simple_parser;
# Test Case 10: Test Fulltext with UCS2
CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT
) ENGINE=InnoDB DEFAULT CHARACTER SET ucs2;
INSERT INTO articles (title, body) VALUES ('数据的结合','数据库');
CREATE FULLTEXT INDEX ft_idx ON articles(title) WITH PARSER ngram;
ERROR HY000: Column 'title' cannot be part of FULLTEXT index
CREATE FULLTEXT INDEX ft_idx ON articles(title);
ERROR HY000: Column 'title' cannot be part of FULLTEXT index
DROP TABLE articles;

Man Man