SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
InnoDBだってシュッと全文検索したい!
Report
Rikito Taniguchi
Follow
Jan. 11, 2016
•
0 likes
•
793 views
1
of
23
InnoDBだってシュッと全文検索したい!
Jan. 11, 2016
•
0 likes
•
793 views
Download Now
Download to read offline
Report
Internet
InnoDBで全文検索するぞ!
Rikito Taniguchi
Follow
Recommended
201903 のの会@関数Talk 10th
Satoru Abe
489 views
•
27 slides
5分でわかるビットコイン
Yu Takabatake
575 views
•
21 slides
Introduction to Data Science
Christy Abraham Joy
43K views
•
51 slides
Time Management & Productivity - Best Practices
Vit Horky
158.7K views
•
42 slides
The six step guide to practical project management
MindGenius
28.2K views
•
27 slides
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson36
8.6K views
•
21 slides
More Related Content
Featured
ChatGPT webinar slides
Alireza Esmikhani
27.7K views
•
36 slides
More than Just Lines on a Map: Best Practices for U.S Bike Routes
Project for Public Spaces & National Center for Biking and Walking
6.1K views
•
51 slides
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
DevGAMM Conference
3.1K views
•
12 slides
Barbie - Brand Strategy Presentation
Erica Santiago
23.7K views
•
46 slides
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Saba Software
25K views
•
64 slides
Introduction to C Programming Language
Simplilearn
8.1K views
•
39 slides
Featured
(20)
ChatGPT webinar slides
Alireza Esmikhani
•
27.7K views
More than Just Lines on a Map: Best Practices for U.S Bike Routes
Project for Public Spaces & National Center for Biking and Walking
•
6.1K views
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
DevGAMM Conference
•
3.1K views
Barbie - Brand Strategy Presentation
Erica Santiago
•
23.7K views
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Saba Software
•
25K views
Introduction to C Programming Language
Simplilearn
•
8.1K views
The Pixar Way: 37 Quotes on Developing and Maintaining a Creative Company (fr...
Palo Alto Software
•
88K views
9 Tips for a Work-free Vacation
Weekdone.com
•
7K views
I Rock Therefore I Am. 20 Legendary Quotes from Prince
Empowered Presentations
•
142.6K views
How to Map Your Future
SlideShop.com
•
274.8K views
Beyond Pride: Making Digital Marketing & SEO Authentically LGBTQ+ Inclusive -...
AccuraCast
•
3.3K views
Read with Pride | LGBTQ+ Reads
Kayla Martin-Gant
•
1K views
Exploring ChatGPT for Effective Teaching and Learning.pptx
Stan Skrabut, Ed.D.
•
56.2K views
How to train your robot (with Deep Reinforcement Learning)
Lucas García, PhD
•
42.1K views
4 Strategies to Renew Your Career Passion
Daniel Goleman
•
121.8K views
The Student's Guide to LinkedIn
LinkedIn
•
86.8K views
Different Roles in Machine Learning Career
Intellipaat
•
12.2K views
Defining a Tech Project Vision in Eight Quick Steps pdf
TechSoup
•
9.5K views
The Hero's Journey (For movie fans, Lego fans, and presenters!)
Dan Roam
•
29K views
10 Inspirational Quotes for Graduation
Guy Kawasaki
•
302.2K views
InnoDBだってシュッと全文検索したい!
1.
InnoDBだってシュッと 全文検索したい! 2016/01/11 (月) 第二回 CAMPHOR-
× KMC 合同 LT大会
2.
こんにちは! ・@tanishiking ・京都大学工学部情報学科 B3 ・去年の4月ぐらいから CAMPHOR- ・DBとかに興味ある(できるとは言ってない)
3.
EXPLAIN してますか?
4.
SELECT * FROM
table WHERE text LIKE ‘%foo%’;
5.
SELECT * FROM
table WHERE text LIKE ‘%foo%’; 普通のインデックスだとLIKE検索は前方一致 でないとインデックスが使用されない
6.
かなしい
7.
ならば 全文検索だ!
8.
全文検索エンジンとかいろいろ あるけど環境ととのえるの大変 今ある環境でスッと 全文検索したい
9.
MySQL 5.6.4 から
フルテキストイ ンデックスが InnoDB でも使え る!
10.
MySQL 5.6.4 から
フルテキストイ ンデックスが InnoDB でも使え る! ※ただし日本語のような個々の単語に区切り文字がない言語はサポートしないものとする
11.
MySQL 5.6.4 から
フルテキストイ ンデックスが InnoDB でも使え る! ※ただし日本語のような個々の単語に区切り文字がない言語はサポートしないものとする どういうこと?
12.
日本語を区切るためには? mecab すもももももももものうち すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも
名詞,一般,*,*,*,*,もも,モモ,モモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ の 助詞,連体化,*,*,*,*,の,ノ,ノ うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ 分かち書き
13.
日本語を区切るためには? ngram テキストをn文字ごとに区切る bigram (n =
2) なら こんにちは ↓ こん, んに, にち. ちは
14.
く…空白で区切られた 文章は いけるんでしょ…???
15.
CREATE TABLE `test`
( `id` AUTO_INCREMENT NOT NULL PRIMARY KEY, `text` varchar(255) NOT NULL, FULLTEXT KEY `ngram_idx` (`text`) ) Engine=InnoDB DEFAULT CHARSET=utf-8; INSERT INTO `test` (`text`) VALUES ( “すもも も もも も もも の うち” ); INSERT INTO `test` (`text`) VALUES ( “こん んに にち ちは” );
16.
安心して ください :)
17.
MySQL 5.7.6 から日本語・中国 語・韓国語で利用可能な
ngram パーサーが InnoDB でサポート! ダウンロードすればmecabパーサーも使えるよ!
18.
CREATE TABLE `test`
( `id` AUTO_INCREMENT NOT NULL PRIMARY KEY, `text` varchar(255) NOT NULL, FULLTEXT KEY `ngram_idx` (`text`) WITH PARSER ngram ) Engine=InnoDB DEFAULT CHARSET=utf-8; INSERT INTO `test` (`text`) VALUES ( “すもももももももものうち” ); ngram の n の値は ngram_token_size で設定可能(デフォルトは2)
19.
SELECT * FROM
table WHERE text LIKE ‘%foo%’;
20.
SELECT * FROM
table WHERE (MATCH (text) AGAINST (‘“foo”’ IN BOOLEAN MODE));
21.
・インデックスサイズがでかい ・インデックス作成にめっちゃ時間かかる
22.
MySQL + groonga
= mroonga 他の選択肢 更新・挿入性能は mroonga のほうが上 検索性能は InnoDB fulltext index のほうが上っぽい
23.
ありがとう ございました