ニコニコニュースと全文検索
    研究開発本部
     星野 豊


             1
自己紹介
• 2010年4月 新卒入社

• 星野 豊 (id: con_mame)

• サーバ構築・運用

• ニコニコニュース・実況・DVD・ポイント
  担当
                         2
今回のお話


MySQLを使って全文検索


      の全文検索



                3
MySQLで全文検索




             4
MySQLの全文検索
               SQL Parser

           Full Text Parser

Storage Engine API


     Storage           Full Text
     Engine             Index
                                   5
全文検索Plugin
                 SQL Parser

      Full Text Text Parser
           Full Parser (Plugin)

Storage Engine API

         Patch
     Storage
     Storage             Full Text
      Engine
      Engine              Index
     (Plugin)
                                     6
パッチを当てるPlugin

   SQL Parser

Storage Engine API

             patch

   MyISAM


                         7
Storage Engineを
           置き換えるPlugin(1)
   SQL Parser

Storage Engine API


   groonga
Storage Engine


                              8
Storage Engineを
              変えるPlugin(2)
   SQL Parser

Storage Engine API


    Sphinx
Storage Engine
SQLを使って検索
対象を登録出来
ない

                               9
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
ニコニコニュースの検索要件
           検索結果が
  記事が公開さ   1秒以内に
  れたらすぐ検   かえってきて
   索したい     欲しい     MySQL
                    を使用
                    したい

本文とタグで
検索出来れ
 ばいい


                        12
要件で比較
         Senna   sphinx   groonga   MySQL-ftppc


要件にあう
検索       ✓ △ ✓ ✓
リアルタイム
インデックス   ✓ - ✓ ✓
 5.1対応
         - ✓ ✓ ✓
                                            13
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
ニコニコニュースでは・・・


MySQL-ftppc
   採用

                15
MySQL-ftppcとは

            • 空白で分割する
 space      • タグ検索で使用している
            • 2文字ずつindexを作成する
bigram      • 検索漏れが少ない
            • 本文検索で使用している
            • 形態素解析を使用
 mecab      • 新しい単語に弱い

            • 接尾辞配列を使用
 suffix     • index作成でクラッシュする問題がある


snowball    • 英語に適したインデックス

                                     16
要件確認
   リアルタイム
   インデックス
                 記事が公開さ
                 れたらすぐ検       性能試験
                  索したい
簡単な検索


                           検索結果が
        本文とタグで
                           1秒以内に
        検索出来れ
                           かえってきて
         ばいい
                            欲しい
                   MySQL
                   を使用
                   したい
                                     17
まとめ
• MySQLはPluginとして、用途に合わせて全文
  検索Pluginを選べる

• MySQL-ftppcは検索用途に合わせてPluginを
  使い分ける

• 用途によって性能が異なる事があるので、事
  前の検証はしっかりやりましょう
                                 18
参考
• 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

More Related Content

PDF
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
PDF
いろいろ考えると日本語の全文検索もMySQLがいいね!
ODP
mysqlftppc 紹介
PDF
Mroongaを選んだ理由と
ちょっと嬉しかった話
PDF
MySQL 5.7 InnoDB 日本語全文検索
PDF
MariaDBとMroongaで作る全言語対応超高速全文検索システム
PPTX
みんな大好き“全文検索 on AWS”を試してみました!
PDF
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
いろいろ考えると日本語の全文検索もMySQLがいいね!
mysqlftppc 紹介
Mroongaを選んだ理由と
ちょっと嬉しかった話
MySQL 5.7 InnoDB 日本語全文検索
MariaDBとMroongaで作る全言語対応超高速全文検索システム
みんな大好き“全文検索 on AWS”を試してみました!
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫

What's hot (20)

PDF
Mroonga開発者が来たぞ!
PDF
さいきんの InnoDB Adaptive Flushing (仮)
PPTX
初心者向けMongoDBのキホン!
PDF
Elasticsearch at CrowdWorks
PDF
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
PDF
Embulkを活用したログ管理システム
PDF
My sqlとplugin
PDF
Introduction to MongoDB
PDF
5.6 以前の InnoDB Flushing
PPT
ザ・ドキュメント~うまくいかないNoSQL~
PDF
MongoDB〜その性質と利用場面〜
PDF
InnoDB Table Compression
PDF
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
PDF
Dockerイメージで誰でも気軽にMroonga体験
PDF
MySQL 初めてのチューニング
PDF
sysloadや監視などの話(仮)
PDF
MongoDBのはじめての運用テキスト
PDF
DB tech showcase: 噂のMongoDBその用途は?
PDF
MongoDBではじめるカジュアルなタイムラインシステム
PDF
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
Mroonga開発者が来たぞ!
さいきんの InnoDB Adaptive Flushing (仮)
初心者向けMongoDBのキホン!
Elasticsearch at CrowdWorks
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
Embulkを活用したログ管理システム
My sqlとplugin
Introduction to MongoDB
5.6 以前の InnoDB Flushing
ザ・ドキュメント~うまくいかないNoSQL~
MongoDB〜その性質と利用場面〜
InnoDB Table Compression
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Dockerイメージで誰でも気軽にMroonga体験
MySQL 初めてのチューニング
sysloadや監視などの話(仮)
MongoDBのはじめての運用テキスト
DB tech showcase: 噂のMongoDBその用途は?
MongoDBではじめるカジュアルなタイムラインシステム
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
Ad

Viewers also liked (20)

PDF
Webteko mysqlftppc
PDF
MySQL 5.7 InnoDB 日本語全文検索(その2)
PDF
MySQL 5.7が魅せる新しい運用の形
PDF
Latihan Ujian Nasional II
PPT
Proteo
PDF
2 thompson
PDF
全文検索In着うた配信サービス
PDF
Amy M Port Email
PDF
3 ward
PPTX
Give presentation january_2011_jvdk
PDF
1 lacey
PPTX
The present subjunctive.jpg
PPTX
elisasubjunctive
PPTX
Opp 美商寰泰生技公司簡介產品與白金總裁菁英創業計劃
PDF
4 radomski
PPT
りんくう花火実行委員会
PPTX
Give by Cell Presentation on the Future of Mobile Giving
PPTX
Industrial Practical PPT 2012
PDF
Latihan Ujian Nasional I
PDF
JCoast - A software window into your microbial genomes and metagenomes
Webteko mysqlftppc
MySQL 5.7 InnoDB 日本語全文検索(その2)
MySQL 5.7が魅せる新しい運用の形
Latihan Ujian Nasional II
Proteo
2 thompson
全文検索In着うた配信サービス
Amy M Port Email
3 ward
Give presentation january_2011_jvdk
1 lacey
The present subjunctive.jpg
elisasubjunctive
Opp 美商寰泰生技公司簡介產品與白金總裁菁英創業計劃
4 radomski
りんくう花火実行委員会
Give by Cell Presentation on the Future of Mobile Giving
Industrial Practical PPT 2012
Latihan Ujian Nasional I
JCoast - A software window into your microbial genomes and metagenomes
Ad

Similar to ニコニコニュースと全文検索 (20)

PDF
Aws privte20110406 arai
PDF
Reco choku tech night #09 -reinvent2018報告会-
PDF
NetAppのデータ管理をPuppetで。〜APIとコミュニティのオープン性〜 - 渡邊 誠 、ネットアップ株式会社
PPTX
【GTMF2017】PlayCanvas新機能( 2017/6/30,7/14講演)
PDF
blogサービスの全文検索の話 - #groonga を囲む夕べ
PDF
Jjug springセッション
PDF
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
PDF
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
PDF
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PDF
PostgreSQLでpg_bigmを使って日本語全文検索 (MySQLとPostgreSQLの日本語全文検索勉強会 発表資料)
PPT
Web技術勉強会第1回目
KEY
Osc2012.dbに行ってきました
PDF
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
PDF
Introducing mroonga 20111129
PDF
ゲームのインフラをAwsで実戦tips全て見せます
PDF
Elasticsearchで作る形態素解析サーバ
PPTX
Azure API Management 俺的マニュアル
KEY
おしべめしべLt
PDF
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
Aws privte20110406 arai
Reco choku tech night #09 -reinvent2018報告会-
NetAppのデータ管理をPuppetで。〜APIとコミュニティのオープン性〜 - 渡邊 誠 、ネットアップ株式会社
【GTMF2017】PlayCanvas新機能( 2017/6/30,7/14講演)
blogサービスの全文検索の話 - #groonga を囲む夕べ
Jjug springセッション
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLでpg_bigmを使って日本語全文検索 (MySQLとPostgreSQLの日本語全文検索勉強会 発表資料)
Web技術勉強会第1回目
Osc2012.dbに行ってきました
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Introducing mroonga 20111129
ゲームのインフラをAwsで実戦tips全て見せます
Elasticsearchで作る形態素解析サーバ
Azure API Management 俺的マニュアル
おしべめしべLt
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker

More from techtalkdwango (16)

PDF
みゆっき☆Think#13 「みゆっき卒業制作 ~発表編~」
PDF
みゆっき☆Think#12 「みゆっき卒業制作 ~計画編~」
PDF
みゆっきノート#11「ソフトウェア開発 ~個人からチームへ~」
PDF
みゆっき☆Think#11「ソフトウェア開発 ~個人からチームへ~」
PDF
みゆっきノート#10「チーム開発 ~ 脱ぼっちマインド ~」
PDF
みゆっきノート#9「はじめて学ぶバージョン管理とGit」
PDF
みゆっき☆Think#9「はじめて学ぶバージョン管理とGit」
KEY
みゆっき☆Think#8「Javascriptだけでつくるみゆびで!」
PDF
みゆっきノート #7 「本気で学ぶJavascript」
KEY
みゆっき☆Think#7 「本気で学ぶJavascript」
PDF
みゆっき☆Think#6「Node.jsってなあに?」
PDF
みゆっき☆Think#4 「こんどはiPhoneに触ってみるよ!」
PDF
みゆっきノート #4「こんどはiPhoneに触ってみるよ!」
PDF
みゆっき☆Think#3 「androidに触ってみるよ!」
PDF
みゆっき☆Think #2 「HTML5でできる! あんなこと、こんなこと」
PDF
みゆっきノート
みゆっき☆Think#13 「みゆっき卒業制作 ~発表編~」
みゆっき☆Think#12 「みゆっき卒業制作 ~計画編~」
みゆっきノート#11「ソフトウェア開発 ~個人からチームへ~」
みゆっき☆Think#11「ソフトウェア開発 ~個人からチームへ~」
みゆっきノート#10「チーム開発 ~ 脱ぼっちマインド ~」
みゆっきノート#9「はじめて学ぶバージョン管理とGit」
みゆっき☆Think#9「はじめて学ぶバージョン管理とGit」
みゆっき☆Think#8「Javascriptだけでつくるみゆびで!」
みゆっきノート #7 「本気で学ぶJavascript」
みゆっき☆Think#7 「本気で学ぶJavascript」
みゆっき☆Think#6「Node.jsってなあに?」
みゆっき☆Think#4 「こんどはiPhoneに触ってみるよ!」
みゆっきノート #4「こんどはiPhoneに触ってみるよ!」
みゆっき☆Think#3 「androidに触ってみるよ!」
みゆっき☆Think #2 「HTML5でできる! あんなこと、こんなこと」
みゆっきノート

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