ニコニコニュースと全文検索

7,062 views
7,126 views

Published on

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,062
On SlideShare
0
From Embeds
0
Number of Embeds
4,877
Actions
Shares
0
Downloads
0
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

ニコニコニュースと全文検索

  1. 1. ニコニコニュースと全文検索 研究開発本部 星野 豊 1
  2. 2. 自己紹介• 2010年4月 新卒入社• 星野 豊 (id: con_mame)• サーバ構築・運用• ニコニコニュース・実況・DVD・ポイント 担当 2
  3. 3. 今回のお話MySQLを使って全文検索 の全文検索 3
  4. 4. MySQLで全文検索 4
  5. 5. MySQLの全文検索 SQL Parser Full Text ParserStorage Engine API Storage Full Text Engine Index 5
  6. 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. 7. パッチを当てるPlugin SQL ParserStorage Engine API patch MyISAM 7
  8. 8. Storage Engineを 置き換えるPlugin(1) SQL ParserStorage Engine API groongaStorage Engine 8
  9. 9. Storage Engineを 変えるPlugin(2) SQL ParserStorage Engine API SphinxStorage EngineSQLを使って検索対象を登録出来ない 9
  10. 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. ニコニコニュースでは・・・いっぱい種類があるけど・・・ どれを使おうか?? 11
  12. 12. ニコニコニュースの検索要件 検索結果が 記事が公開さ 1秒以内に れたらすぐ検 かえってきて 索したい 欲しい MySQL を使用 したい本文とタグで検索出来れ ばいい 12
  13. 13. 要件で比較 Senna sphinx groonga MySQL-ftppc要件にあう検索 ✓ △ ✓ ✓リアルタイムインデックス ✓ - ✓ ✓ 5.1対応 - ✓ ✓ ✓ 13
  14. 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. 15. ニコニコニュースでは・・・MySQL-ftppc 採用 15
  16. 16. MySQL-ftppcとは • 空白で分割する space • タグ検索で使用している • 2文字ずつindexを作成するbigram • 検索漏れが少ない • 本文検索で使用している • 形態素解析を使用 mecab • 新しい単語に弱い • 接尾辞配列を使用 suffix • index作成でクラッシュする問題があるsnowball • 英語に適したインデックス 16
  17. 17. 要件確認 リアルタイム インデックス 記事が公開さ れたらすぐ検 性能試験 索したい簡単な検索 検索結果が 本文とタグで 1秒以内に 検索出来れ かえってきて ばいい 欲しい MySQL を使用 したい 17
  18. 18. まとめ• MySQLはPluginとして、用途に合わせて全文 検索Pluginを選べる• MySQL-ftppcは検索用途に合わせてPluginを 使い分ける• 用途によって性能が異なる事があるので、事 前の検証はしっかりやりましょう 18
  19. 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

×