Your SlideShare is downloading. ×
MySQL日本語全文検索エンジン
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

MySQL日本語全文検索エンジン

3,554
views

Published on

ドワンゴ勉強会の生放送で使用した資料です。 …

ドワンゴ勉強会の生放送で使用した資料です。
MySQLと日本語全文検索エンジンについて導入部分。

Published in: Technology

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,554
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
3
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ニコニコニュースと全文検 索 研究開発本部 星野 豊 1
  • 2. 自己紹介• 2010年4月 新卒入社• 星野 豊 (id: con_mame)• サーバ構築・運用• ニコニコニュース・実況・DVD・ポ イント担当 2
  • 3. 今回のお話MySQLを使って全文検索 の全文検 索 3
  • 4. MySQLで全文検索 4
  • 5. MySQLの全文検索 SQL Parser Full Text ParserStorage Engine API Storage Full Text Engine Index 5
  • 6. 全文検索Plugin SQL Parser Full Text Text Parser Full Parser (Plugin)Storage Engine API Patch Storage Storage Full Text Engine Engine Index (Plugin) 6
  • 7. パッチを当てるPlugin SQL ParserStorage Engine API patch MyISAM 7
  • 8. Storage Engineを 置き換えるPlugin(1) SQL ParserStorage Engine API groongaStorage Engine 8
  • 9. Storage Engineを 変えるPlugin(2) SQL ParserStorage Engine API SphinxStorage EngineSQLを使って検索対象を登録出来ない 9
  • 10. Full Text ParserをMySQL-ftppc 置換えるPlugin SQL Parser space mecab bigram Suffix snowball Full Text Parser MySQL標準 Storage Engine API の Full Text Parser MyISAM Full Text Index 10
  • 11. ニコニコニュースでは・・・ いっぱい種類があるけ ど・・・ どれを使おうか?? 11
  • 12. ニコニコニュースの検索要件 記事が公開 検索結果が されたらす 1秒以内に ぐ検索した かえってき い て欲しい MySQL を使用 したい本文とタグ で検索出来れ ばいい 12
  • 13. 要件で比較 Senna sphinx groonga MySQL-ftppc要件にあう検索 ✓ △ ✓ ✓リアルタイムインデックス ✓ - ✓ ✓ 5.1対応 - ✓ ✓ ✓ 13
  • 14. groongaとMySQL-ftppc• groonga storage engineはVer. 0.1が出たばか り• groonga を使用するためにコードを書き換 えないといけない groonga作者• branchのftnorm.c/ftnorm.hで置き換えて解• 最新版でもICUライブラリを使用するとク 決! ラッシュ • mecab plugin r126 • メモリ周りの処理でMySQLごと落ちる • bigram plugin r125 MySQL-ftppc 14
  • 15. ニコニコニュースでは・・・ MySQL-ftppc 採用 15
  • 16. MySQL-ftppcとは • 空白で分割する space • タグ検索で使用している • 2文字ずつindexを作成するbigram • 検索漏れが少ない • 本文検索で使用している • 形態素解析を使用 mecab • 新しい単語に弱い • 接尾辞配列を使用 suffix • index作成でクラッシュする問題があるsnowball • 英語に適したインデックス 16
  • 17. 要件確認 リアルタイ ム インデック ス 記事が公開 されたらす ぐ検索した 性能試験 い簡単な検索 本文とタグ 検索結果が で 1秒以内に 検索出来れ かえってき ばいい て欲しい MySQL を使用 したい 17
  • 18. まとめ• MySQLはPluginとして、用途に合わせて全 文検索Pluginを選べる• MySQL-ftppcは検索用途に合わせてPluginを 使い分ける• 用途によって性能が異なる事があるの で、事前の検証はしっかりやりましょう 18
  • 19. 参考• http://sourceforge.net/apps/mediawiki/mysqlftp pc/index.php – ftppc公式サイト• http://www.slideshare.net/hiroaki.kawai/mysqlft ppc – ftppc紹介スライド• http://mysqlftppc.svn.sourceforge.net/ – ftppcソース 19
  • 20. space Plugin This is a pen 空白で分割This is a pen 20
  • 21. bigram plugin 今日は晴れ 2文字づつ分割今日 日は は晴 晴れ 21
  • 22. mecab plugin今日は晴れ 形態素で分割今日 は 晴れ名詞 助詞 名詞 22
  • 23. suffix plugin abra 接尾辞で分割 a 4 abra 1 bra 2 ra 3 23
  • 24. snow ball pluginengineering/engineered stemming処理を行 う engineer 24
  • 25. MySQL-ftppcの設定 共通 space bigram• normalization • Space drop long • なし token• unicode version • space raw input normalization ペー ㍍ ジ ㌻ メートル ページ メート ル 文字を区別しないで検索出来るようにす 25 る

×