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 |
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;