「Mysql/日本語全文検索」の版間の差分
提供: 初心者エンジニアの簡易メモ
(ページの作成:「==mysql5.7から日本語にも対応された== それまでは以下mroongaでしか使えなかった。 Mroonga [ショートカット]」) |
|||
| 行2: | 行2: | ||
それまでは以下mroongaでしか使えなかった。 | それまでは以下mroongaでしか使えなかった。 | ||
[[Mroonga]] [ショートカット] | [[Mroonga]] [ショートカット] | ||
| + | |||
| + | ==ngram2での検索サンプル== | ||
| + | CREATE TABLE diaries ( | ||
| + | id INT PRIMARY KEY AUTO_INCREMENT, | ||
| + | content VARCHAR(255), | ||
| + | FULLTEXT INDEX (content) | ||
| + | ) COLLATE='utf8_bin' ENGINE=InnoDB; | ||
| + | insert into diaries (content) values ("明日は晴れです"); | ||
| + | insert into diaries (content) values ("明日は曇りです"); | ||
| + | select * from diaries where match(content) against('晴れ'); | ||
| + | |||
| + | ==ngram2での検索サンプル(複数カラムの検索の場合)== | ||
| + | CREATE TABLE diaries ( | ||
| + | id INT PRIMARY KEY AUTO_INCREMENT, | ||
| + | title VARCHAR(64) NULL DEFAULT NULL, | ||
| + | content TEXT NULL, | ||
| + | fulltext_column TEXT AS (CONCAT(title, ' ', content)) STORED, | ||
| + | FULLTEXT INDEX ftx_fulltext (fulltext_column) /*!50100 WITH PARSER `ngram` */ | ||
| + | ) COLLATE='utf8_bin' ENGINE=InnoDB; | ||
| + | insert into diaries (title,content) values ("晴!", "明日は晴れです"); | ||
| + | insert into diaries (title,content) values ("曇!", "明日は曇りです"); | ||
| + | select * from diaries where match(content) against('晴れ'); | ||
| + | select * from diaries where match(content) against('曇!'); | ||
2017年5月9日 (火) 16:10時点における版
mysql5.7から日本語にも対応された
それまでは以下mroongaでしか使えなかった。 Mroonga [ショートカット]
ngram2での検索サンプル
CREATE TABLE diaries (
id INT PRIMARY KEY AUTO_INCREMENT,
content VARCHAR(255),
FULLTEXT INDEX (content)
) COLLATE='utf8_bin' ENGINE=InnoDB;
insert into diaries (content) values ("明日は晴れです");
insert into diaries (content) values ("明日は曇りです");
select * from diaries where match(content) against('晴れ');
ngram2での検索サンプル(複数カラムの検索の場合)
CREATE TABLE diaries (
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(64) NULL DEFAULT NULL,
content TEXT NULL,
fulltext_column TEXT AS (CONCAT(title, ' ', content)) STORED,
FULLTEXT INDEX ftx_fulltext (fulltext_column) /*!50100 WITH PARSER `ngram` */
) COLLATE='utf8_bin' ENGINE=InnoDB;
insert into diaries (title,content) values ("晴!", "明日は晴れです");
insert into diaries (title,content) values ("曇!", "明日は曇りです");
select * from diaries where match(content) against('晴れ');
select * from diaries where match(content) against('曇!');
