SlideShare a Scribd company logo
1 of 30
pixiv Solr 導入記 X
[object Object],[object Object],[object Object],[object Object]
Java が好きなんですが pixiv には Java 好きは居ません・・・
目次 ,[object Object],[object Object],[object Object],[object Object]
Solrを導入する目的 Tritonn による検索に限界があるため検索専用のアプリケーションを模索 検索だけで30台ある台数を減らせればいいなぁ モバイルで人気順ソートを実装する
Tritonn時代のマシン構成 ,[object Object],Mysql-Tritton(senna) を使用 ,[object Object],AthlonX2 4850e 2.50GHz (2 コア ) Mem 8G SSD X25(80GB) or C300(64GB)
でのTritonnの問題点
[object Object],MyISAM のため Replication で更新クエリーがくるとそこでロックがかかってしまう ,[object Object],ロックがかかるため CPU が1コア分くらいしか使い切れていない ,[object Object],たとえば6を検索したとき⑥や全角半角の6なども OR 検索し条件が増える 揺らぎ補正のため Normalize は Off にできない ,[object Object],Tritonn が組み込まれたバージョンを使用しなければならないため Mysql5.1 などにアップグレードできなかった
[object Object],[object Object],[object Object],いろいろ重い検索条件を載せたかったのですがエロワードばかりなので自主規制・・・
これはやばい! よし!Solrだ! 現在でも捌けないのに人気順ソートをモバイルに実装する必要がでてくる・・・
Solrの特徴
[object Object],[object Object],Master が持っているファイルをスレーブにコピーするだけ 内部で rsync と同じようなことをしているだけ ,[object Object],設定ファイルを書くだけで起動すれば勝手に転送される Master と同じインデックスファイルをもらうだけ ,[object Object],[object Object]
[object Object],  Solr はドキュメントを追加した後に Commit を行って初めてデータが反映される ( トランザクションに近い? )    その Commit が結構な負荷のため1件ずつリアルタイムで更新せず溜め込んだデータをバッチで一気に処理する   pixiv では更新されたイラスト情報を Mysql のトリガーでログテーブルに保存しそのログを元に Scala で差分更新処理をしている ,[object Object], 頻繁に更新するとクエリーキャッシュの意味を余り成さない ,[object Object], 他にも XML や JSON などあり
Solr3.2.0を使用 ,[object Object]
tokenizer : NGramTokenizer  指定された文字数で分割する
filter : LowerCaseFilter  大文字英字を小文字に変換
charfilter : MappingCharFilterFactory  後ほど説明
データ構造
uniqueKey: illust_id
その他検索に必要なタグ、タイトル、コメント、作品が R18 かどうかなど
illust_id 以外はインデックスのみでデータを持たない
Solr検証時の問題点
文字が長いと途中から検索できない・・・ NGramTokenizer という Solr 標準の Tokenizer を使用してたのですが コードを読んでみると最大値がなぜか 1024 文字固定になっていたため可変に修正 solr-3.2.0/lucene/contrib/analyzers/common/src/java/org/apache/lucene/analysis/ngram/NGramTokenizer.java 修正前コード char[] chars = new char[1024]; input.read(chars);​ inStr = new String(chars).trim(); 修正後コード CharArrayWriter writer = new CharArrayWriter(1024); int c; while((c = input.read()) != -1) {     writer.write(c); } inStr = new String(writer.toCharArray()).trim();
MultiValueを使うと検索結果がおかしい unigram で2文字以上の検索ワードを投げるとタグがくっついた形ヒットする 例えばタグに [ オリジナル ] [ パン ] というタグがあったとして 「ルパン」と検索すると・・・ [ オリジナ ル ] [ パン ]  という様に分かれているタグが引っかかってしまう 対処法が分からなかったため検索ワードの文字数によって unigram と bigram のインデックスを使い分けて対処した オリジナル 猫の検索例    tag_bigram: オリジナル  OR tag_unigram: 猫
半角カタカナ文字にヒットしない 半角カタカナを全角カタカナでヒットさせるには自前で設定をしなければならない (NGramTokenizer を使用する場合 ) その場合 MappingCharFilterFactory というフィルターを使って Normalize することができる 設定例 " ガ "=>" ガ " " ギ "=>" ギ " pixiv では「へ」はどちらでもヒットするように設定 " へ "=>" ヘ " " べ "=>" ベ " " ぺ "=>" ペ "
大量の件数がある場合ソートが重い 全体で1200万件の内 [ 東方 ] というタグには100万件以上ありソートだけで1 .5 秒くらいかかっている 1秒以上かかるものがある時点で検索を捌くことは不可能 データ更新は1分間隔でしていたのでキャッシュの恩威が少ない ちなみにソートをしなければ一瞬で検索できる
じゃあ高速化しましょう!
高速化1 Solr には DistributedSearch という分散インデックス検索ができるのでインデックスを分散する 4分割 ( イラスト ID%4 の余りが番号 ) して各マシンに1つずつインデックスを持てば検索速度が4倍早くなる この機能は検索時にインデックスを持っているサーバーをパラメータで渡すだけでいいのでクライアント側の修正は簡単である 例 q= 東方 &shareds=localhost:8983/solr/index0,localhost:8983/solr/index1
※ 補足 左に行くほど新しい 全体のインデックス 4分割された イラストのインデックス 1つのイラストをイメージ index1 index2 index3 index4
すべてのインデックスから10件分 ( 4分割なので40件分 ) の「東方」の結果を受け取る クライアント 「東方」を検索する その中で10件分の結果が返る 分散検索のイメージ図 4つのインデックスに投げる Solr1 index1 Solr3 index3 Solr2 index2 Solr4 index4 DistributedSearcher

More Related Content

What's hot

世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討Masahito Zembutsu
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法Tetsutaro Watanabe
 
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはJun-ichi Sakamoto
 
やってはいけない空振りDelete
やってはいけない空振りDeleteやってはいけない空振りDelete
やってはいけない空振りDeleteYu Yamada
 
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチをOSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチをi_yudai
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveTokoroten Nakayama
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかAtsushi Nakada
 
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...whywaita
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタはじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタSatoyuki Tsukano
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビューTakafumi ONAKA
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説murachue
 
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8Koichiro Matsuoka
 
Riverpodでテストを書こう
Riverpodでテストを書こうRiverpodでテストを書こう
Riverpodでテストを書こうShinnosuke Tokuda
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーToru Makabe
 
データ分析基盤を支えるエンジニアリング
データ分析基盤を支えるエンジニアリングデータ分析基盤を支えるエンジニアリング
データ分析基盤を支えるエンジニアリングRecruit Lifestyle Co., Ltd.
 

What's hot (20)

世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とはがんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
がんばらなくても C# で Single Page Web アプリケーションが書けてしまう「Blazor」とは
 
やってはいけない空振りDelete
やってはいけない空振りDeleteやってはいけない空振りDelete
やってはいけない空振りDelete
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチをOSTree: OSイメージとパッケージシステムの間にGitのアプローチを
OSTree: OSイメージとパッケージシステムの間にGitのアプローチを
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLiveDXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
DXとかDevOpsとかのなんかいい感じのやつ 富士通TechLive
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 
入門!Jenkins
入門!Jenkins入門!Jenkins
入門!Jenkins
 
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタはじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタ
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
ドメイン駆動設計 モデリング_実装入門勉強会_2020.3.8
 
Riverpodでテストを書こう
Riverpodでテストを書こうRiverpodでテストを書こう
Riverpodでテストを書こう
 
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャーKubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
 
データ分析基盤を支えるエンジニアリング
データ分析基盤を支えるエンジニアリングデータ分析基盤を支えるエンジニアリング
データ分析基盤を支えるエンジニアリング
 

Viewers also liked

memcachedからKyotoTycoonへ
memcachedからKyotoTycoonへmemcachedからKyotoTycoonへ
memcachedからKyotoTycoonへTatsuhiko Kubo
 
2011-07-15 チューニングが楽になる JavaScript 道具箱
2011-07-15 チューニングが楽になる JavaScript 道具箱2011-07-15 チューニングが楽になる JavaScript 道具箱
2011-07-15 チューニングが楽になる JavaScript 道具箱Takuya Yokono
 
カップリング検索プレゼン2
カップリング検索プレゼン2カップリング検索プレゼン2
カップリング検索プレゼン2sakana1123
 
Vagrant intro
Vagrant introVagrant intro
Vagrant introt9md
 
20110715 enterprise wiki search
20110715 enterprise wiki search20110715 enterprise wiki search
20110715 enterprise wiki searchShigeki Yamato
 
アメーバピグのサーバとクライアントはどうやって通信しているのか
アメーバピグのサーバとクライアントはどうやって通信しているのかアメーバピグのサーバとクライアントはどうやって通信しているのか
アメーバピグのサーバとクライアントはどうやって通信しているのかTanaka Hiromi
 
波に乗ってUnity3Dを使ってみているんだが (Ameba x Pixiv 合同勉強会LT)
波に乗ってUnity3Dを使ってみているんだが (Ameba x Pixiv 合同勉強会LT)波に乗ってUnity3Dを使ってみているんだが (Ameba x Pixiv 合同勉強会LT)
波に乗ってUnity3Dを使ってみているんだが (Ameba x Pixiv 合同勉強会LT)maginemu Mishimagi
 
Matrix Factorizationを使った評価予測
Matrix Factorizationを使った評価予測Matrix Factorizationを使った評価予測
Matrix Factorizationを使った評価予測JAVA DM
 
松本克彦 ピグにおけるリアルタイムランキングの導入
松本克彦 ピグにおけるリアルタイムランキングの導入松本克彦 ピグにおけるリアルタイムランキングの導入
松本克彦 ピグにおけるリアルタイムランキングの導入matsumoto_katsuhiko
 
実録 WEBエンジニアが Titanium Mobileアプリを開発するまで
実録 WEBエンジニアが Titanium Mobileアプリを開発するまで実録 WEBエンジニアが Titanium Mobileアプリを開発するまで
実録 WEBエンジニアが Titanium Mobileアプリを開発するまでYusaku Watanabe
 
海外向けサービスの苦労話
海外向けサービスの苦労話海外向けサービスの苦労話
海外向けサービスの苦労話Masakazu Matsushita
 
iOS App performance tuning with Instruments
iOS App performance tuning with InstrumentsiOS App performance tuning with Instruments
iOS App performance tuning with Instrumentsgc-hiramatsu
 
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)Yuuki Namikawa
 
iPhoneで動くFlash Playerを実装した苦労話LT資料
iPhoneで動くFlash Playerを実装した苦労話LT資料iPhoneで動くFlash Playerを実装した苦労話LT資料
iPhoneで動くFlash Playerを実装した苦労話LT資料Kohei Morino
 
OpenCVによる顔認識システムの開発
OpenCVによる顔認識システムの開発OpenCVによる顔認識システムの開発
OpenCVによる顔認識システムの開発Takahiko Teramoto
 
kontagent紹介資料
kontagent紹介資料kontagent紹介資料
kontagent紹介資料Eiji Hachiya
 
From MongoDB v1.8.2 To v2.0.2
From MongoDB v1.8.2 To v2.0.2From MongoDB v1.8.2 To v2.0.2
From MongoDB v1.8.2 To v2.0.2Naoki Sega
 
松本克彦 Flash stage3dに対応した3d物理演算ライブラリの検証
松本克彦 Flash stage3dに対応した3d物理演算ライブラリの検証松本克彦 Flash stage3dに対応した3d物理演算ライブラリの検証
松本克彦 Flash stage3dに対応した3d物理演算ライブラリの検証matsumoto_katsuhiko
 

Viewers also liked (20)

memcachedからKyotoTycoonへ
memcachedからKyotoTycoonへmemcachedからKyotoTycoonへ
memcachedからKyotoTycoonへ
 
2011-07-15 チューニングが楽になる JavaScript 道具箱
2011-07-15 チューニングが楽になる JavaScript 道具箱2011-07-15 チューニングが楽になる JavaScript 道具箱
2011-07-15 チューニングが楽になる JavaScript 道具箱
 
カップリング検索プレゼン2
カップリング検索プレゼン2カップリング検索プレゼン2
カップリング検索プレゼン2
 
Vagrant intro
Vagrant introVagrant intro
Vagrant intro
 
20110715 enterprise wiki search
20110715 enterprise wiki search20110715 enterprise wiki search
20110715 enterprise wiki search
 
アメーバピグのサーバとクライアントはどうやって通信しているのか
アメーバピグのサーバとクライアントはどうやって通信しているのかアメーバピグのサーバとクライアントはどうやって通信しているのか
アメーバピグのサーバとクライアントはどうやって通信しているのか
 
波に乗ってUnity3Dを使ってみているんだが (Ameba x Pixiv 合同勉強会LT)
波に乗ってUnity3Dを使ってみているんだが (Ameba x Pixiv 合同勉強会LT)波に乗ってUnity3Dを使ってみているんだが (Ameba x Pixiv 合同勉強会LT)
波に乗ってUnity3Dを使ってみているんだが (Ameba x Pixiv 合同勉強会LT)
 
Matrix Factorizationを使った評価予測
Matrix Factorizationを使った評価予測Matrix Factorizationを使った評価予測
Matrix Factorizationを使った評価予測
 
松本克彦 ピグにおけるリアルタイムランキングの導入
松本克彦 ピグにおけるリアルタイムランキングの導入松本克彦 ピグにおけるリアルタイムランキングの導入
松本克彦 ピグにおけるリアルタイムランキングの導入
 
実録 WEBエンジニアが Titanium Mobileアプリを開発するまで
実録 WEBエンジニアが Titanium Mobileアプリを開発するまで実録 WEBエンジニアが Titanium Mobileアプリを開発するまで
実録 WEBエンジニアが Titanium Mobileアプリを開発するまで
 
海外向けサービスの苦労話
海外向けサービスの苦労話海外向けサービスの苦労話
海外向けサービスの苦労話
 
Ca勉強会・ldについて
Ca勉強会・ldについてCa勉強会・ldについて
Ca勉強会・ldについて
 
iOS App performance tuning with Instruments
iOS App performance tuning with InstrumentsiOS App performance tuning with Instruments
iOS App performance tuning with Instruments
 
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
サーバの構築作業や運用管理を自動化する「Chef」 (CADC研究レポート発表LT)
 
iPhoneで動くFlash Playerを実装した苦労話LT資料
iPhoneで動くFlash Playerを実装した苦労話LT資料iPhoneで動くFlash Playerを実装した苦労話LT資料
iPhoneで動くFlash Playerを実装した苦労話LT資料
 
OpenCVによる顔認識システムの開発
OpenCVによる顔認識システムの開発OpenCVによる顔認識システムの開発
OpenCVによる顔認識システムの開発
 
Inside png
Inside pngInside png
Inside png
 
kontagent紹介資料
kontagent紹介資料kontagent紹介資料
kontagent紹介資料
 
From MongoDB v1.8.2 To v2.0.2
From MongoDB v1.8.2 To v2.0.2From MongoDB v1.8.2 To v2.0.2
From MongoDB v1.8.2 To v2.0.2
 
松本克彦 Flash stage3dに対応した3d物理演算ライブラリの検証
松本克彦 Flash stage3dに対応した3d物理演算ライブラリの検証松本克彦 Flash stage3dに対応した3d物理演算ライブラリの検証
松本克彦 Flash stage3dに対応した3d物理演算ライブラリの検証
 

Similar to pixiv サイバーエージェント共同勉強会 solr導入記

LIFULL HOME'S「かざして検索」リリースの裏側
LIFULL HOME'S「かざして検索」リリースの裏側LIFULL HOME'S「かざして検索」リリースの裏側
LIFULL HOME'S「かざして検索」リリースの裏側Takuro Hanawa
 
マルウェア分類に用いられる特徴量 Kaggle - Malware Classification Challenge勉強会
マルウェア分類に用いられる特徴量	 Kaggle - Malware Classification Challenge勉強会マルウェア分類に用いられる特徴量	 Kaggle - Malware Classification Challenge勉強会
マルウェア分類に用いられる特徴量 Kaggle - Malware Classification Challenge勉強会Takeshi Ishita
 
HTMLからの本文抽出
HTMLからの本文抽出HTMLからの本文抽出
HTMLからの本文抽出Lintaro Ina
 
0730 bp study#35発表資料
0730 bp study#35発表資料0730 bp study#35発表資料
0730 bp study#35発表資料Yasuhiro Horiuchi
 
Hadoop conferencejapan2011
Hadoop conferencejapan2011Hadoop conferencejapan2011
Hadoop conferencejapan2011Ichiro Fukuda
 
SageMaker Neoの可能性について - 第3回 Amazon SageMaker 事例祭り+体験ハンズオン
SageMaker Neoの可能性について- 第3回 Amazon SageMaker 事例祭り+体験ハンズオンSageMaker Neoの可能性について- 第3回 Amazon SageMaker 事例祭り+体験ハンズオン
SageMaker Neoの可能性について - 第3回 Amazon SageMaker 事例祭り+体験ハンズオンtomohiro kato
 
事例紹介「なうまぴおん」
事例紹介「なうまぴおん」事例紹介「なうまぴおん」
事例紹介「なうまぴおん」Eiji Iwazawa
 
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門Tatsuya Tojima
 
GrowthForecastことはじめ
GrowthForecastことはじめGrowthForecastことはじめ
GrowthForecastことはじめMakoto Taniwaki
 
Kaggleのテクニック
KaggleのテクニックKaggleのテクニック
KaggleのテクニックYasunori Ozaki
 
Kerasで深層学習を実践する
Kerasで深層学習を実践するKerasで深層学習を実践する
Kerasで深層学習を実践するKazuaki Tanida
 
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talkmitamex4u
 
使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!IIJ
 
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテムSmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテムSmartNews, Inc.
 
Kobe.R #15 - Incanter チョットシッテル
Kobe.R #15 - Incanter チョットシッテルKobe.R #15 - Incanter チョットシッテル
Kobe.R #15 - Incanter チョットシッテルtnoda
 
Sinatra風マイクロフレームワークで始めるPython
Sinatra風マイクロフレームワークで始めるPythonSinatra風マイクロフレームワークで始めるPython
Sinatra風マイクロフレームワークで始めるPythonkuroneko1988
 
Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Rubymitim
 

Similar to pixiv サイバーエージェント共同勉強会 solr導入記 (20)

LIFULL HOME'S「かざして検索」リリースの裏側
LIFULL HOME'S「かざして検索」リリースの裏側LIFULL HOME'S「かざして検索」リリースの裏側
LIFULL HOME'S「かざして検索」リリースの裏側
 
マルウェア分類に用いられる特徴量 Kaggle - Malware Classification Challenge勉強会
マルウェア分類に用いられる特徴量	 Kaggle - Malware Classification Challenge勉強会マルウェア分類に用いられる特徴量	 Kaggle - Malware Classification Challenge勉強会
マルウェア分類に用いられる特徴量 Kaggle - Malware Classification Challenge勉強会
 
HTMLからの本文抽出
HTMLからの本文抽出HTMLからの本文抽出
HTMLからの本文抽出
 
0730 bp study#35発表資料
0730 bp study#35発表資料0730 bp study#35発表資料
0730 bp study#35発表資料
 
Hadoop conferencejapan2011
Hadoop conferencejapan2011Hadoop conferencejapan2011
Hadoop conferencejapan2011
 
SageMaker Neoの可能性について - 第3回 Amazon SageMaker 事例祭り+体験ハンズオン
SageMaker Neoの可能性について- 第3回 Amazon SageMaker 事例祭り+体験ハンズオンSageMaker Neoの可能性について- 第3回 Amazon SageMaker 事例祭り+体験ハンズオン
SageMaker Neoの可能性について - 第3回 Amazon SageMaker 事例祭り+体験ハンズオン
 
事例紹介「なうまぴおん」
事例紹介「なうまぴおん」事例紹介「なうまぴおん」
事例紹介「なうまぴおん」
 
Haikara
HaikaraHaikara
Haikara
 
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門
 
GrowthForecastことはじめ
GrowthForecastことはじめGrowthForecastことはじめ
GrowthForecastことはじめ
 
Kaggleのテクニック
KaggleのテクニックKaggleのテクニック
Kaggleのテクニック
 
Kerasで深層学習を実践する
Kerasで深層学習を実践するKerasで深層学習を実践する
Kerasで深層学習を実践する
 
2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk2008.10.18 L4u Tech Talk
2008.10.18 L4u Tech Talk
 
使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!
 
Drupal補完計画
Drupal補完計画Drupal補完計画
Drupal補完計画
 
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテムSmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
SmartNews TechNight Vol5 : SmartNews AdServer 解体新書 / ポストモーテム
 
Kobe.R #15 - Incanter チョットシッテル
Kobe.R #15 - Incanter チョットシッテルKobe.R #15 - Incanter チョットシッテル
Kobe.R #15 - Incanter チョットシッテル
 
Sinatra風マイクロフレームワークで始めるPython
Sinatra風マイクロフレームワークで始めるPythonSinatra風マイクロフレームワークで始めるPython
Sinatra風マイクロフレームワークで始めるPython
 
Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Ruby
 
20121215 DevLOVE2012 Mahout on AWS
20121215 DevLOVE2012 Mahout on AWS20121215 DevLOVE2012 Mahout on AWS
20121215 DevLOVE2012 Mahout on AWS
 

pixiv サイバーエージェント共同勉強会 solr導入記