More Related Content
PDF
PDF
20111029 part2-dnsトリビア(出張版)-事後資料 PDF
20111029 part1-dnsをあえてdisってみる-事後資料 PPTX
Amazon RDS for PostgreSQL ( JPUG 2014夏セミナー) #jpug PDF
B1-4 送信ドメイン認証・暗号化 DeepDive ~ DMARCから MTA-STS, DANEまで全部PASSさせるまでの道のり PDF
PDF
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜 PDF
JSONBはPostgreSQL9.5でいかに改善されたのか What's hot
PDF
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫 PDF
PDF
PDF
PDF
MySQLとPostgreSQLと日本語全文検索 - Azure DatabaseでMroonga・PGroongaを使いたいですよね!? PDF
JPAAWG2020 送信ドメイン認証・暗号化 Deep Dive! (Sender Auth, Email Encryption Deep Dive!) PDF
Osc2015 hokkaido postgresql-semi-stuructured-datatype PDF
PostgreSQLでpg_bigmを使って日本語全文検索 (MySQLとPostgreSQLの日本語全文検索勉強会 発表資料) PDF
PDF
pg_bigm(ピージーバイグラム)を用いた全文検索のしくみ PDF
各スペシャリストがお届け!データベース最新情報セミナー -PostgreSQL10- PDF
pg_bigm(ピージー・バイグラム)を用いた全文検索のしくみ(後編) PPTX
PDF
[Postgre sql9.4新機能]レプリケーション・スロットの活用 PDF
Hatoholのログ蓄積・検索機能 2014/12版 PDF
[B32] クイズと都市伝説から見る、ありのままのPostgreSQL by Shigeyuki Tokuhara PDF
PDF
いろいろ考えると日本語の全文検索もMySQLがいいね! ODP
Viewers also liked
PDF
PDF
PDF
みゆっき☆Think#9「はじめて学ぶバージョン管理とGit」 PDF
みゆっき☆Think#11「ソフトウェア開発 ~個人からチームへ~」 PDF
PDF
PDF
DOCX
Cap budeting upload_finanace PDF
PDF
PDF
PDF
News Limited - Digital Insights PDF
Edelman Digital Public Affairs take on Obama & social media PPTX
PPT
PDF
みゆっき☆Think#4 「こんどはiPhoneに触ってみるよ!」 PDF
PPT
PPTX
Guide by Cell Presentation on the Future of Mobile Technology PDF
Similar to 全文検索In着うた配信サービス
PPTX
Tritonn から Elasticsearch への移行話 PDF
PDF
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5 PDF
クエリログとスニペットの単語連接頻度に基づくWeb検索クエリのセグメンテーション PDF
PDF
第二回データサイエンティスト木曜勉強会20141016 PDF
データサイエンティスト協会 木曜勉強会 #02『クレンジングからビジュアライズまで!実践!データ解析超入門!』 PDF
PDF
[data analytics showcase] B14: 文字情報の分析基盤 Mroonga by 株式会社インサイトテクノロジー 小幡 一郎 PDF
Elasticsearch入門 pyfes 201207 PDF
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム PDF
PDF
MySQL・PostgreSQL上で動かす全文検索エンジン「Groonga」セミナー PDF
PDF
PDF
PDF
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」 PPTX
PDF
PDF
More from techtalkdwango
PDF
みゆっき☆Think#13 「みゆっき卒業制作 ~発表編~」 PDF
みゆっき☆Think#12 「みゆっき卒業制作 ~計画編~」 PDF
みゆっきノート#11「ソフトウェア開発 ~個人からチームへ~」 PDF
みゆっきノート#10「チーム開発 ~ 脱ぼっちマインド ~」 PDF
みゆっきノート#9「はじめて学ぶバージョン管理とGit」 KEY
みゆっき☆Think#8「Javascriptだけでつくるみゆびで!」 PDF
みゆっきノート #7 「本気で学ぶJavascript」 KEY
みゆっき☆Think#7 「本気で学ぶJavascript」 PDF
みゆっき☆Think#6「Node.jsってなあに?」 PDF
みゆっきノート #4「こんどはiPhoneに触ってみるよ!」 PDF
みゆっき☆Think#3 「androidに触ってみるよ!」 PDF
みゆっき☆Think #2 「HTML5でできる! あんなこと、こんなこと」 PDF
PDF
全文検索In着うた配信サービス
- 1.
- 2.
自己紹介
中村智将(なかむらともゆき)
新卒入社2年目
twitter: nakamuu
経歴
研修でモバイルサイト検索サービス
社内バグトラッキングシステムの検索機能改造
今ここ→モバイルサイト検索機能担当
2
- 3.
- 4.
- 5.
- 6.
多くのユーザを獲得するために
様々な検索条件
楽曲
アーティスト
キーワード
ドラマ番組名
検索
種類(着メロ,着うた,うたフル)
試聴可能 配信サイト
高速なレスポンス
配信開始日 着うた
etc... ページ表示1秒
6
- 7.
- 8.
- 9.
例えばこんな条件で検索させたい
楽曲配信中の番組を検索 10月火曜21時ドラマ
『フリーター、家を買う。』
dwango.jpで主題歌配信中
確かあのドラマで
流れてた曲を探したい
ユーザ入力
番組 フリーター 検索
システム入力
• 配信しているサイト「dwango.jpフル」
• 素材のジャンル「着うたフル」
9
- 10.
従来の実装
前提 システム全体でMySQLを使っている
通常の文字列検索 LIKE検索 は遅い
MySQL 全文検索 は機能不足
MySQL+独自のParser Plugin
10
- 11.
- 12.
- 13.
- 14.
- 15.
例えばこんな条件で検索させたい
楽曲配信中の番組を検索 10月火曜21時ドラマ
『フリーター、家を買う。』
dwango.jpで主題歌配信中
確かあのドラマで
通常のキーワード 流れてた曲を探したい
番組 フリーター 検索
擬似キーワード
• 配信しているサイト「site100」
• 素材のジャンル「genre20」
15
- 16.
- 17.
- 18.
同時に複数の条件を指定
楽曲 アーティスト ドラマ番組名 配信サイト
キーワード 配信開始日 試聴可能 etc...
実行時間 個数に比例して遅くなる
5個程度で数秒かかる
場合もある
条件組み合わせ個数 18
- 19.
- 20.
- 21.
- 22.
- 23.
必要な機能を持つエンジン
•配信日の比較(数値比較)が可能
• MySQLのGROUP BY相当の機能
数値比較が遅い GROUP BYができない
MySQLに組み込んで使える 23
- 24.
インデック
2-gram, space 1-gram, space
ス方式
任意の
数値絞込み 任意の1カラム
複数カラム
数値絞込みの
GROUP BY 任意のカラム
カラム
運用事例
24
- 25.
- 26.
- 27.
番組検索テーブル
レコード数: 142万件
サイズ: 340MB
ID 番組名 楽曲ID 素材 配信サイト 作成日
ジャンル 一覧
1 さよなら、 3 1 s1 s2 s10 2010/10/10
僕らの夏
2 I AM SAM 5 3 s3 s4 s5 2010/09/01
... ... ... ...
着うたを配信しているサイト一覧
(擬似キーワード)
27
- 28.
- 29.
実験結果(1/4) – 基本速度
検索条件 番組名に”さよなら”を含む
ヒット件数 1046件
fast slow
0.01未満
0.03
2.73
0.0 0.1 0.2 0.3 [sec] 29
- 30.
実験結果(2/4) – OR検索
検索条件 サイト1,2,3,4,5,6,7のいずれかで配信している
ヒット件数 806,126件
fast slow
4.60
0.23
0.0 2.0 4.0 6.0 [sec]
30
- 31.
実験結果(3/4) – 組み合わせ
番組名に”さよなら”を含み、かつ
検索条件 サイト1,2,3,4,5,6,7のいずれかで配信している
ヒット件数 151件
fast slow
2.61
0.13
0.0 2.0 4.0 6.0 [sec]
31
- 32.
実験結果(4/4) – 実際のパターン
着(メロ,うた,ボイス)のいずれかが、
検索条件 サイト1,2,3,4,5,6,7のいずれかで配信している
結果をidでGROUP BYして日付で昇順ソート
ヒット件数 14,429件
fast slow
5.50
0.26
0.0 2.0 4.0 6.0 [sec]
32
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
インデックス参照の流れ
(
擬
似 辞書 ドキュメント ヒット位置
)
キ
ー
ワ
ー
ド ①キーワードがヒットするIDを見つける
属
性
イ
ン 属性
デ
ッ
ク
ス ②属性インデックスでIDをさらに絞り込む 40
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
Sphinx参考資料
公式サイト
http://sphinxsearch.com/
実践ハイパフォーマンスMySQL第2版 付録
現状、日本語でまとまった資料はこれだけ
Sphinxソースコード
読まないとわからないことが多い
48
- 49.