facebook twitter hatena line email

「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('曇!');