Submit Search
Upload
20121126 Solr@ニコニコ生放送
•
4 likes
•
2,466 views
Yoshimura Soichiro
Follow
第9回Solr勉強会 http://atnd.org/events/33718 で発表した内容
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 23
Download now
Download to read offline
Recommended
艦これタイマーシリーズご紹介
艦これタイマーシリーズご紹介
koedoyoshida
いいニャ @ おばかアプリコンテスト
いいニャ @ おばかアプリコンテスト
Toriningen,Inc.
艦これタイマー for firefox addonの拡張
艦これタイマー for firefox addonの拡張
koedoyoshida
LT駆動開発08 - 無限のディスク領域を手に入れよう(妄想編)
LT駆動開発08 - 無限のディスク領域を手に入れよう(妄想編)
Kazuya Matsubara
UEFIで始めるLinux From Scratch
UEFIで始めるLinux From Scratch
Yuma Ohgami
Bitbucket Pull Request 練習帳
Bitbucket Pull Request 練習帳
Hiramatsu Ryosuke
YouTubeの再生リストの作り方(編集)と作る10個のメリット
YouTubeの再生リストの作り方(編集)と作る10個のメリット
新潟コンサルタント横田秀珠
UEFIベアメタルプログラミング
UEFIベアメタルプログラミング
Yuma Ohgami
Recommended
艦これタイマーシリーズご紹介
艦これタイマーシリーズご紹介
koedoyoshida
いいニャ @ おばかアプリコンテスト
いいニャ @ おばかアプリコンテスト
Toriningen,Inc.
艦これタイマー for firefox addonの拡張
艦これタイマー for firefox addonの拡張
koedoyoshida
LT駆動開発08 - 無限のディスク領域を手に入れよう(妄想編)
LT駆動開発08 - 無限のディスク領域を手に入れよう(妄想編)
Kazuya Matsubara
UEFIで始めるLinux From Scratch
UEFIで始めるLinux From Scratch
Yuma Ohgami
Bitbucket Pull Request 練習帳
Bitbucket Pull Request 練習帳
Hiramatsu Ryosuke
YouTubeの再生リストの作り方(編集)と作る10個のメリット
YouTubeの再生リストの作り方(編集)と作る10個のメリット
新潟コンサルタント横田秀珠
UEFIベアメタルプログラミング
UEFIベアメタルプログラミング
Yuma Ohgami
CybozuのOSS(WalB)へコミットしてみた/使ってみた
CybozuのOSS(WalB)へコミットしてみた/使ってみた
Yuma Ohgami
osoljp201105_ZFSjiman_nslope
osoljp201105_ZFSjiman_nslope
Noriyasu Sakaue
Indentとの戦い-艦これOSS便利ツールの紹介-
Indentとの戦い-艦これOSS便利ツールの紹介-
koedoyoshida
DebianでFirefoxをカスタマイズするには
DebianでFirefoxをカスタマイズするには
kenhys
マルチタスクって奥が深い #mishimapm
マルチタスクって奥が深い #mishimapm
鉄次 尾形
徹底比較!! Heliosearch vs Solr
徹底比較!! Heliosearch vs Solr
Ebisawa Shinobu
「もうひとつの“イプシロン・ザ・ロケット”」 の技術的側面資料
「もうひとつの“イプシロン・ザ・ロケット”」 の技術的側面資料
Takuya Hayashi
BirdAlbum365
BirdAlbum365
敬亮 谷口
よくわかる?KotonoSyncの使い方!
よくわかる?KotonoSyncの使い方!
u Suzumof
協調フィルタリング
協調フィルタリング
miyagawa50
Vocalshifterの説明と歌ボとトークでの使い方
Vocalshifterの説明と歌ボとトークでの使い方
_zuckey_12
Pod Casting Japan
Pod Casting Japan
COS-POLI
VocalShifterを歌うボイスロイドで使ってみる
VocalShifterを歌うボイスロイドで使ってみる
_zuckey_12
Charity Items from Debian JP Project
Charity Items from Debian JP Project
Taisuke Yamada
kintone REST API client package for R
kintone REST API client package for R
Ryu Yamashita
和牛をおいしく食べるには
和牛をおいしく食べるには
Masayuki Ozawa
HLSについて知っていることを話します
HLSについて知っていることを話します
Moriyoshi Koizumi
Jubatus 新機能ハイライト
Jubatus 新機能ハイライト
JubatusOfficial
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
JubatusOfficial
Summer camp2018 group1
Summer camp2018 group1
openrtm
NHNグループ合同勉強会 ライブドア片野
NHNグループ合同勉強会 ライブドア片野
livedoor
YAPC Asia 2010 30days Albumの裏側 後日談
YAPC Asia 2010 30days Albumの裏側 後日談
Kensuke Nagae
More Related Content
What's hot
CybozuのOSS(WalB)へコミットしてみた/使ってみた
CybozuのOSS(WalB)へコミットしてみた/使ってみた
Yuma Ohgami
osoljp201105_ZFSjiman_nslope
osoljp201105_ZFSjiman_nslope
Noriyasu Sakaue
Indentとの戦い-艦これOSS便利ツールの紹介-
Indentとの戦い-艦これOSS便利ツールの紹介-
koedoyoshida
DebianでFirefoxをカスタマイズするには
DebianでFirefoxをカスタマイズするには
kenhys
マルチタスクって奥が深い #mishimapm
マルチタスクって奥が深い #mishimapm
鉄次 尾形
徹底比較!! Heliosearch vs Solr
徹底比較!! Heliosearch vs Solr
Ebisawa Shinobu
「もうひとつの“イプシロン・ザ・ロケット”」 の技術的側面資料
「もうひとつの“イプシロン・ザ・ロケット”」 の技術的側面資料
Takuya Hayashi
BirdAlbum365
BirdAlbum365
敬亮 谷口
よくわかる?KotonoSyncの使い方!
よくわかる?KotonoSyncの使い方!
u Suzumof
協調フィルタリング
協調フィルタリング
miyagawa50
Vocalshifterの説明と歌ボとトークでの使い方
Vocalshifterの説明と歌ボとトークでの使い方
_zuckey_12
Pod Casting Japan
Pod Casting Japan
COS-POLI
VocalShifterを歌うボイスロイドで使ってみる
VocalShifterを歌うボイスロイドで使ってみる
_zuckey_12
Charity Items from Debian JP Project
Charity Items from Debian JP Project
Taisuke Yamada
kintone REST API client package for R
kintone REST API client package for R
Ryu Yamashita
和牛をおいしく食べるには
和牛をおいしく食べるには
Masayuki Ozawa
HLSについて知っていることを話します
HLSについて知っていることを話します
Moriyoshi Koizumi
Jubatus 新機能ハイライト
Jubatus 新機能ハイライト
JubatusOfficial
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
JubatusOfficial
Summer camp2018 group1
Summer camp2018 group1
openrtm
What's hot
(20)
CybozuのOSS(WalB)へコミットしてみた/使ってみた
CybozuのOSS(WalB)へコミットしてみた/使ってみた
osoljp201105_ZFSjiman_nslope
osoljp201105_ZFSjiman_nslope
Indentとの戦い-艦これOSS便利ツールの紹介-
Indentとの戦い-艦これOSS便利ツールの紹介-
DebianでFirefoxをカスタマイズするには
DebianでFirefoxをカスタマイズするには
マルチタスクって奥が深い #mishimapm
マルチタスクって奥が深い #mishimapm
徹底比較!! Heliosearch vs Solr
徹底比較!! Heliosearch vs Solr
「もうひとつの“イプシロン・ザ・ロケット”」 の技術的側面資料
「もうひとつの“イプシロン・ザ・ロケット”」 の技術的側面資料
BirdAlbum365
BirdAlbum365
よくわかる?KotonoSyncの使い方!
よくわかる?KotonoSyncの使い方!
協調フィルタリング
協調フィルタリング
Vocalshifterの説明と歌ボとトークでの使い方
Vocalshifterの説明と歌ボとトークでの使い方
Pod Casting Japan
Pod Casting Japan
VocalShifterを歌うボイスロイドで使ってみる
VocalShifterを歌うボイスロイドで使ってみる
Charity Items from Debian JP Project
Charity Items from Debian JP Project
kintone REST API client package for R
kintone REST API client package for R
和牛をおいしく食べるには
和牛をおいしく食べるには
HLSについて知っていることを話します
HLSについて知っていることを話します
Jubatus 新機能ハイライト
Jubatus 新機能ハイライト
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
まだCPUで消耗してるの?Jubatusによる近傍探索のGPUを利用した高速化
Summer camp2018 group1
Summer camp2018 group1
Similar to 20121126 Solr@ニコニコ生放送
NHNグループ合同勉強会 ライブドア片野
NHNグループ合同勉強会 ライブドア片野
livedoor
YAPC Asia 2010 30days Albumの裏側 後日談
YAPC Asia 2010 30days Albumの裏側 後日談
Kensuke Nagae
fluxflex meetup in Tokyo
fluxflex meetup in Tokyo
Kyosuke Inoue
Inside MF
Inside MF
Tokuhiro Matsuno
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
Manabu Shimobe
第15回Solr勉強会 - Solr at Yahoo! JAPAN #SolrJP
第15回Solr勉強会 - Solr at Yahoo! JAPAN #SolrJP
Yahoo!デベロッパーネットワーク
Enterprise Redmine
Enterprise Redmine
Dai FUJIHARA
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
Akihiro Kuwano
[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている
Akihiro Kuwano
Visualize terms network in Lucene index
Visualize terms network in Lucene index
Koji Sekiguchi
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
Toshihiko Yamakami
Fluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in Tokyo
Kyosuke Inoue
コミュニティ運営とレンタルサーバ
コミュニティ運営とレンタルサーバ
法林浩之
XPagesDay 2015 RESTの総復習
XPagesDay 2015 RESTの総復習
Masahiko Miyo
Morioka As 0x06 Usagi Koyomirya
Morioka As 0x06 Usagi Koyomirya
兎 伊藤
14対話bot発表資料
14対話bot発表資料
Keiichirou Miyamoto
Twitterのフォロワの増減がわたし…、 気になります! (OSC 2012 広島, Hiroshima.rb)
Twitterのフォロワの増減がわたし…、 気になります! (OSC 2012 広島, Hiroshima.rb)
Yukinori KITADAI
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!デベロッパーネットワーク
osc_tokyo20100226
osc_tokyo20100226
Shoken Fujisaki
解説 Windows 10 May 2020 Update
解説 Windows 10 May 2020 Update
Tomokazu Kizawa
Similar to 20121126 Solr@ニコニコ生放送
(20)
NHNグループ合同勉強会 ライブドア片野
NHNグループ合同勉強会 ライブドア片野
YAPC Asia 2010 30days Albumの裏側 後日談
YAPC Asia 2010 30days Albumの裏側 後日談
fluxflex meetup in Tokyo
fluxflex meetup in Tokyo
Inside MF
Inside MF
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
第15回Solr勉強会 - Solr at Yahoo! JAPAN #SolrJP
第15回Solr勉強会 - Solr at Yahoo! JAPAN #SolrJP
Enterprise Redmine
Enterprise Redmine
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている
Visualize terms network in Lucene index
Visualize terms network in Lucene index
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
ロボット・ソフトウェア開発環境ROSとは何か? (in Japanese)
Fluxflex meetup 2011 in Tokyo
Fluxflex meetup 2011 in Tokyo
コミュニティ運営とレンタルサーバ
コミュニティ運営とレンタルサーバ
XPagesDay 2015 RESTの総復習
XPagesDay 2015 RESTの総復習
Morioka As 0x06 Usagi Koyomirya
Morioka As 0x06 Usagi Koyomirya
14対話bot発表資料
14対話bot発表資料
Twitterのフォロワの増減がわたし…、 気になります! (OSC 2012 広島, Hiroshima.rb)
Twitterのフォロワの増減がわたし…、 気になります! (OSC 2012 広島, Hiroshima.rb)
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
osc_tokyo20100226
osc_tokyo20100226
解説 Windows 10 May 2020 Update
解説 Windows 10 May 2020 Update
More from Yoshimura Soichiro
FirebaseでN高生証明botを作ってみた
FirebaseでN高生証明botを作ってみた
Yoshimura Soichiro
N高等学校でやってるプログラミング
N高等学校でやってるプログラミング
Yoshimura Soichiro
失敗の話
失敗の話
Yoshimura Soichiro
ソフトウェア設計のすすめ
ソフトウェア設計のすすめ
Yoshimura Soichiro
並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門
Yoshimura Soichiro
Obsのプラグイン作ってみた
Obsのプラグイン作ってみた
Yoshimura Soichiro
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Yoshimura Soichiro
チームの目標への柔軟な対応
チームの目標への柔軟な対応
Yoshimura Soichiro
私とインクス
私とインクス
Yoshimura Soichiro
More from Yoshimura Soichiro
(9)
FirebaseでN高生証明botを作ってみた
FirebaseでN高生証明botを作ってみた
N高等学校でやってるプログラミング
N高等学校でやってるプログラミング
失敗の話
失敗の話
ソフトウェア設計のすすめ
ソフトウェア設計のすすめ
並行処理初心者のためのAkka入門
並行処理初心者のためのAkka入門
Obsのプラグイン作ってみた
Obsのプラグイン作ってみた
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
Developers Summit 2014 「Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所」
チームの目標への柔軟な対応
チームの目標への柔軟な対応
私とインクス
私とインクス
Recently uploaded
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Recently uploaded
(9)
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
20121126 Solr@ニコニコ生放送
1.
Solr@ニコニコ生放送 株式会社ドワンゴ 吉村総一郎(@sifue)
2.
ニコニコ生放送とは
3.
4.
2007年12月にニコニコ動画に追加されたライブ ストリーミングサービス 動画に流れるコメントをつけられる 公式放送、チャンネル放送、ユーザー生放送が あり、一日に約10万番組(大体30分枠)が放送中
5.
10/17にバージョンQをリリース (ニコ生のトップはひどい叩かれようだった...) 要求の高いユーザー、ニコ厨(ヘビーユーザ)と 生主(生放送者)が独自の文化感を醸成 自分も生主の一人
6.
自己紹介
7.
吉村 総一郎 (@SIFUE) twitter、github、はてなのidはsifue 2012年4月ドワンゴ入社
(担当:検索、tweetまとめ、Qトップの一部) 前職では製造業向けシステムのサーバーサイド等 やってきた順: Jackrabbit→Lucene→Solr(600GBの MSOfficeファイルとか)→ニコ生のSolr
8.
ニコ生のSolr担当者が入れ替わり退職していた... その方をtwitterでfollowすることからスタート 今日の話は、後で資料や環境を調べたりIRCログか ら発掘して判明した情報です☆(ゝω・)vキャピ
9.
ニコニコ生放送における要件
10.
元々MySQL + Sennaだった 問題として、検索精度、レスポンス、各種ソートがない、な どがあった
(残念ながら当時はGoogleの方が...) 要件は放送開始後1分以内にひっかかること とにかく高速なインデックス更新が必要 だいたい1年ぐらいかけて少しずつ移行 (%, 部分)
11.
機能
キーワード検索 マイナス, AND, OR検索 放送中、放送予定、放送終 了での区分け タグ検索、タグ絞込み コミュニティ毎のグループ化 各種ソート 放送日時範囲指定
12.
構成
Master (write-only) 2core 8G mem SolrReplication Slave (read-only) Slave (read-only) モジュール: Solr/Lucene3.4.0, jetty-7.5.0.v20110901 マスター(1台 - 更新のみ) - スレーブ(2台)構成 リプリケーションはSolrの機能を利用 この構成は、スレーブ格上げ・追加がやりやすく可用性高い 元々は分散インデクスを実装していたが、ボトルネックがDBから のデータ収集にあったことや、不具合で断念
13.
インデックス対象
✕ 700,000 過去の全ての公式番組の番組情報と1週間でできる70万番組 の番組情報 (更新は多いが全量は少ない) 1番組あたり1kb∼10kb程度のテキストを持つ 更新頻度の高い情報に「来場者数」と「コメント数」がある
14.
インデックス作成タイミング
DB DB … batch(PHP) Solr AP Redis AP … 基本はバッチ処理で作成。 大量の番組更新・削除情報はWebサーバー(AP)か ら情報を一旦Redisに積んでそれを利用。
15.
アナライザ トーカナイザはインデックス更新速度優先で、 solr.CJKTokenizerFactoryをそのまま利用 フィルタは、solr.HTMLStripCharFilterFactoryとお手 製の正規化フィルタのみ 無論Bi-gramなので、「FF」とか「DQ」に弱い。 そこはタグ情報を付加してしのいでいる
16.
1日のSELECTリクエスト 分刻み ピーク時で40QPS程度 (iPhone,
Android等含む) スレーブ2台の2コア割当でロードアベレージは、 ピーク時で8程度でなんとかなんとか
17.
1日のUPDATEリクエスト 分刻み ピーク時は80QPSの更新 (番組作成・更新・削除) 1番組のテキストが多くて5000文字程度で小さい マスターのロードアベレージはピークでも0.2程度 で余裕あり
18.
簡単に今のパフォーマンスを紹介しましたが、実はここに 至るまで壮絶な失敗があったようでした... 自作分散インデクシングが高負荷状態でCPU100%にな ったり、メモリリークしたり
特定のテキストでお手製Filterが無限ループ ボット・クローラー対策 結局最後は、非常にシンプルな構成に→これがいいのかも
19.
開発環境用意のための工夫
20.
Developer
DB jar/war Hot deploy Request Developer DB Multi tenancy Sinatra(Ruby) Developer DB Solr Solr Solr Solr Create overlay.xml Developer DB Solr Solr Solr … … Jettyのマルチテナント機能を利用した単一Jettyサーバーへの30近 いsolr環境構築 検索はDBと結合してるので、個人の開発DBの数だけ環境用意 が大変、仮想イメージ配るのも大変、Jetty立てまくりも大変 リクエスト送ると自動でインスタンスを作るサーバーを作って マルチテナントを用意。jarの更新も1箇所でOK。
21.
今後 インデックス作成のCPUに余裕があるので kuromojiやgosenを使った形態素解析に移行した い...が。台湾語や英語サイトも立ち上がっており こういうのどうしてるのか聞きたい。(単漢字とか。) データ収集の方にボトルネックがあるのでむし ろそちら側の改善をやっていく予定。
22.
以上 ご清聴ありがとうございました
23.
質疑応答
Download now