SlideShare a Scribd company logo
リクルートテクノロジーズ 宮川 
リクルートにおけるソリューション開拓と実装展開 〜elasticsearchによる検索基盤と新ソリューションの開拓
2 
宮川 典久 リクルートテクノロジーズ APソリューショングループ 
自己紹介 
Twitter 
@m_nori 
出身地 
東京 
趣味 
ロードバイク 
ゲーム(最近はMH4G) 
折り紙
3 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
アジェンダ 
1.はじめに 
2.次世代検索基盤について 
3.サイト展開へ向けての取り組み 
4.まとめ
1.はじめに 
4
旅行 
IT/トレンド 
生活/地域情報 
グルメ・美容 
ライフスタイル領域 
ライフイベント領域 
進学 
就職 
結婚 
転職 
住宅購入 
車購入 
出産/育児 
「選択・意思決定」を支援する情報サービスの提供 
→「まだ、ここにない、出会い。」の実現へ 
リクルートとは 
5
リクルートキャリア 
リクルートジョブズ 
リクルートスタッフィング 
リクルート住まいカンパニー 
リクルートライフスタイル 
リクルートマーケティングパートナーズ 
スタッフサービス・ホールディングス 
リクルートアドミニストレーション 
リクルートコミュニケーションズ 
事業会社 
機能会社 
インフラ部門 
大規模プロジェクト推進部門 
UI設計/SEO部門 
ビッグデータ機能部門 
テクノロジーR&D部門 
事業・社内IT推進部門 
リクルート 
ホールディングス 
リクルートとは、 
主要7事業会社+3機能会社 
で構成されるグループ企業群 
6 
リクルートテクノロジーズとは
リクルートテクノロジーズの役割 
7 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
開拓 
実装、展開 
運用 
テクノロジー 
ライフサイクル 
≪テクノロジーへの考え方≫ 
「開拓」「実装・展開」を経た「運用」でリクルートへの利益貢献を行う。
リクルートテクノロジーズの役割 
8 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
広範囲のビジネスに装 着し、効果を最大化さ せるための改善を行い、 事業貢献利益を追究 
Rグループのビジネスに 短・中期的に実活用の可能 性がある技術をリサーチ 
対象技術における事業化 への検証を行い、評価・選 定する 
開拓(実活用研究) 
実際に事業へ適用 し、より広範囲に 利用するための型 化やスキームを構 築 
実装・展開 
運用 
実施内容 
リクルートテクノロジーズ(短・中期的視野) 
利益を目的としない中長期的な 視点に立ち、新技術や新手法の 研究/発明を行い、論文発表す ることを目指す 
要素基礎技術の研究 
社外(中・長期的視野) 
技術数の 
推移イメージ 
年間約200の技術をリサーチし、 約30の技術を評価・選定 
年間数個〜10個の 
技術を展開 
運用フェーズまで 
移行された技術が蓄積 
無数の新技術を研究/発明
•サイト横断でのアーキテクト領域を担当し、 サイトに役立つソリューションを展開する グループ 
•社内フレームワークや性能チューニング等 をソリューション化し運用している。 
•運用だけでなく、技術ベースでサイトに貢 献するため、ソリューションの開拓や実 装・展開も担う 
ASGとATL 
9 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
•新しい技術の開拓や次のトレンドを察知し、 未来のサービスに活かせるソリューション を生み出すグループ 
•先端技術をベースとしたソリューションを 作り、サイト内でフィジビリティを行う。 
どちらもリクルートテクノロジーズ内でアプリケーションの開発を担当する組織
ASGとATL 
10 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
技術数の 推移イメージ 
ATL 
ASG 
開拓(実活用研究) 
実装・展開 
運用 
テーマによっては最初か ら協同する
リクルートにおけるJavaへの取り組み 
11 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
多くのサイトでR2FrameworkというJava製の社内フレームワークを使っているた め、リクルートはJava非常にお世話になっています! 
✖
2.次世代検索基盤について 
12
次世代検索基盤とは 
13 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
Query Analyze Search System 
リクルート内のサイトに対して 
•検索品質 
•フィードバック 
•検索機能追加 
•メトリクス など提供する次世代検索基盤
アーキテクチャ 
14 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
✖ 
殆どの機能をelasticsearchのプラグインとして実装
elasticsearchとは 
15 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
オープンソースの全文検索エンジン 【特徴】 
•Apache Luceneがベース 
•リアルタイム性 
•スキーマレス 
•分散環境 
•RESTful API 
•楽観的バージョン制御 最近はKibanaと組み合わせたログモニタリングによく使われている。 
elasticsearch自体については18時からの@johtaniの セッションで詳細に話してくれると思います
体制と役割 
16 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
Qass 
サイト提供I/F 
検索基本機能 
機械学習 
インフラ 
Qass利用サイト 
Hadoop開発 
インフラ構築 
elasticsearch プラグイン開発 
導入支援 
タスク 
組織 
ASG 
ATL 
BDG 
ISG
提供する機能 
17 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
Qass 
サイト提供I/F 
検索基本機能 
機械学習 
インフラ 
•Suggest 
•Results Blending 
•Query A/B Test 
•Custom Tokenizer 
•Query Boosting 
•Speller 
機能 
•User Feed Back 
•Dictionary
ユーザーフィードバック 
18 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
ビーコンサーバ 
Hadoop基盤
Hadoopによる機械学習の活用 
19 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
機械学習辞書 
ビーコンデータ 
・入力中のキーイベントを収集 
「牛角」の読みが「ぎゅうかく」で あることを学習! 
牛角 
翌日「ぎゅうかく」で検索してみると・・・ 
※入力途中で「牛角」を入力候補に表示! 
検索 
※「牛角」に漢字変換してから検索 
特殊な読み仮名は通常手動で辞書登録しないと仮名検索ができない 例)「ぎゅうかく」と入力 
検索ログ
3.サイト展開へ向けての取り組み 
20
Suggest+Beacon サーバ 
各サイト 
Qassのシステム構成 
21 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
APサーバ 
Batchサーバ 
QassPlugin 
Qass Analizer 
コンテンツ インデックス 
シノニム 
機械学習辞書 
マッピング 
HDFS 
収集データ 
クエリーログ 
ビーコンログ 
コンテンツ データ 
運用管理 
Batchサーバ 
Qass Analizer 
サジェスト 
インデックス 
集計結果 
シノニム 
機械学習辞書 
マッピング 
サジェスト データ
Suggest+Beacon サーバ 
各サイト 
通常の検索 
22 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
APサーバ 
Batchサーバ 
QassPlugin 
Qass Analizer 
コンテンツ インデックス 
シノニム 
機械学習辞書 
マッピング 
HDFS 
収集データ 
クエリーログ 
ビーコンログ 
コンテンツ データ 
運用管理 
Batchサーバ 
Qass Analizer 
サジェスト インデックス 
ユーザ操作は全て Beaconサーバに送信
Suggest+Beacon 
サーバ 
各サイト 
サジェスト 
23 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
APサーバ 
Batchサーバ 
QassPlugin 
Qass Analizer 
コンテンツ インデックス 
シノニム 
機械学習辞書 
マッピング 
HDFS 
収集データ 
クエリーログ 
ビーコンログ 
コンテンツ データ 
運用管理 
Batchサーバ 
Qass Analizer 
サジェスト 
インデックス
Suggest+Beacon サーバ 
各サイト 
サジェスト 
24 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
APサーバ 
Batchサーバ 
QassPlugin 
Qass Analizer 
コンテンツ インデックス 
シノニム 
機械学習辞書 
マッピング 
HDFS 
収集データ 
クエリーログ 
ビーコンログ 
コンテンツ データ 
運用管理 
Batchサーバ 
Qass Analizer 
サジェスト 
インデックス
Suggest+Beacon 
サーバ 
各サイト 
機械学習 
25 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
APサーバ 
Batchサーバ 
QassPlugin 
Qass Analizer 
コンテンツ 
インデックス 
シノニム 
機械学習辞書 
マッピング 
HDFS 
収集データ 
集計結果 
シノニム 
機械学習辞書 
マッピング 
Map/Reduce 
サジェスト データ 
クエリーログ 
ビーコンログ 
コンテンツ 
データ 
運用管理 
Batchサーバ 
Qass Analizer 
サジェスト インデックス
更新面の管理 
26 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
プラットフォームとして提供しているため、サイトによってインデックス更新の方 針やタイミングが異なるのを実現できるようにする必要がある。 
サイトA 
日時で差分更新のみ 
サイトB 
日次の差分更新 
+ 
月次で全件更新→翌日反映 
サイトC 週次で全件更新→月曜朝8時に反映
更新面の管理 
27 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
QassPlugin 
ItemIndex001 
SearchIndex(Alias) 
検索 
更新 
UpdateIndex(Alias) 
インデックスを直接参照するのではなくelasticsearchのAlias機能を活用すること で、検索面と更新面を間接的に参照。 
ItemIndex002
更新面の管理 
28 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
QassPlugin 
ItemIndex001 
SearchIndex(Alias) 
検索 
更新 
UpdateIndex(Alias) 
検索面を表に出すタイミングでAliasの切り替えを実施。 インデックス毎に連番でバージョン番号を付けて管理を行う。 
ItemIndex002 
ItemIndex003 
一定期間経過後に削除
辞書更新への対応 
29 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
シノニム 
機械学習辞書 
マッピング 
Qass Analizer 
途中から異なる辞書を使うと不整合が発生するため、辞書を反映させるのはインデ ックスを作り直したタイミングにする必要がある。 
焼肉→焼き肉 
◯◯焼き肉 
△△焼肉 
◯◯焼き肉 
△△焼き肉 
シノニム 
機械学習辞書 
マッピング 
Qass Analizer 
焼き肉→焼肉 
◯◯焼き肉 
△△焼き肉 
辞書を更 新 
□□焼き肉 
□□焼肉
辞書更新への対応 
30 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
ItemIndex001 
ItemIndex002 
ItemIndex003 
シノニム 
機械学習辞書 
マッピング 
シノニム 
機械学習辞書 
マッピング 
シノニム 
機械学習辞書 
マッピング 
Dictionary001 
Dictionary002 
Dictionary003 
Qass Analizer 
QassPlugin 
SearchIndex(Alias) 
UpdateIndex(Alias) 
検索 
更新 
Indexバージョンごとに辞書セットを作成。 各インデックスを使う際にどの辞書を使うかをプラグインにて管理。
Solrからの移行 
31 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
サイト側アプリケーションサーバ 
検索 (http) 
検索 (http) 
Solr 
検索式 
Solr 検索式 
現状多くのサイトで全文検索エンジンとしてSolrを利用している。 そのため、プラグイン内でSolrクエリーを解釈することでサイト側は手を入れずに 導入を行えるように対応。 
SolrとのA/Bテストにも活用!
4.まとめ 
32
Java8への対応 
33 
(C) Recruit Technologies Co.,Ltd. All rights reserved. 
社内フレームワークのJava8化も行い、各サイトのJava8化に向けて推進していま す! ASGでもATLとも連携し、ライブラリのOSS化も積極的に行っていく予定です!

More Related Content

PDF
リクルートのWebサービスを支える共通インフラ「RAFTEL」
PDF
DockerでWordPressサイトを開発してみよう
PPTX
Kafkaを活用するためのストリーム処理の基本
PDF
モノタロウの開発・リリースサイクルを支えるJenkinsの活用事例 - Jenkins Day Japan 2021
PDF
事業成長にコミットするエンジニア組織への道のり
PPTX
UniRxことはじめ
PDF
リクルートのWebサービスを支える「RAFTEL」
PDF
ドメイン駆動設計入門
リクルートのWebサービスを支える共通インフラ「RAFTEL」
DockerでWordPressサイトを開発してみよう
Kafkaを活用するためのストリーム処理の基本
モノタロウの開発・リリースサイクルを支えるJenkinsの活用事例 - Jenkins Day Japan 2021
事業成長にコミットするエンジニア組織への道のり
UniRxことはじめ
リクルートのWebサービスを支える「RAFTEL」
ドメイン駆動設計入門

What's hot (20)

PDF
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
PDF
そろそろレガシーな.Net開発をやめなイカ?
PDF
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
PDF
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
PDF
ミリシタを支える GAE/Go
PDF
オープンデータとSPARQLでビジュアライズ
PDF
これからSpringを使う開発者が知っておくべきこと
PPTX
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
PPTX
本当は恐ろしい分散システムの話
PDF
Apache Arrow - データ処理ツールの次世代プラットフォーム
PDF
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
PDF
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PDF
AnsibleによるInfrastructure as code入門
PDF
Akkaとは。アクターモデル とは。
PPTX
比較サイトの検索改善(SPA から SSR に変換)
PDF
イミュータブルデータモデル(世代編)
PDF
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
PDF
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
PDF
できる!並列・並行プログラミング
PPTX
上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...
CyberAgentのプライベートクラウド Cycloudの運用及びモニタリングについて #CODT2020 / Administration and M...
そろそろレガシーな.Net開発をやめなイカ?
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
「実践ドメイン駆動設計」 から理解するDDD (2018年11月)
ミリシタを支える GAE/Go
オープンデータとSPARQLでビジュアライズ
これからSpringを使う開発者が知っておくべきこと
Apache Spark on Kubernetes入門(Open Source Conference 2021 Online Hiroshima 発表資料)
本当は恐ろしい分散システムの話
Apache Arrow - データ処理ツールの次世代プラットフォーム
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
AnsibleによるInfrastructure as code入門
Akkaとは。アクターモデル とは。
比較サイトの検索改善(SPA から SSR に変換)
イミュータブルデータモデル(世代編)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
できる!並列・並行プログラミング
上司が信用できない会社の内部統制~第32回WebSig会議「便利さと、怖さと、心強さと〜戦う会社のための社内セキュリティ 2013年のスタンダードとは?!...
Ad

Viewers also liked (20)

PPTX
リクルートテクノロジーズの産学連携への取り組み
PDF
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
PDF
リクルートのビッグデータ活用基盤とデータ活用に向けた取組み
PDF
Company Recommendation for New Graduates via Implicit Feedback Multiple Matri...
PDF
リクルート式AIの活用法
PPTX
Hadoopカンファレンス2013
PPT
Fonética y fonología
PDF
20141116 jjug ccc_2014_keynote1_public
PDF
JJUG CCC 2014 fall Javaが見るニュータイプの夢
PDF
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
PDF
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
PDF
変わる!? リクルートグループのデータ解析基盤
PDF
Apache Solr 検索エンジン入門
PDF
RANCHERを使ったDev(Ops)
PPTX
Sesión 1 introdución online
PDF
Возможности сервиса
PPT
พิชิตชัยชาญ วรรณบุตร
PDF
Emmelienkneppersefashionv1 3zondernotes-zondertommyh-110624113149-phpapp01 (2)
PDF
Guia de estudio metodologia de la investigacion se puede bajar universidad s...
PDF
2016-08 PM VDC veröffentlicht Whitepaper Virtuelle Techniken im Automobilbau
リクルートテクノロジーズの産学連携への取り組み
リクルートグループの現場事例から見る AI/ディープラーニング ビジネス活用の勘所
リクルートのビッグデータ活用基盤とデータ活用に向けた取組み
Company Recommendation for New Graduates via Implicit Feedback Multiple Matri...
リクルート式AIの活用法
Hadoopカンファレンス2013
Fonética y fonología
20141116 jjug ccc_2014_keynote1_public
JJUG CCC 2014 fall Javaが見るニュータイプの夢
Node.jsv0.8からv4.xへのバージョンアップ ~大規模Push通知基盤の運用事例~
実例Javaトラブルシューティング! 〜稼働中のシステムを立て直した半年間の軌跡
変わる!? リクルートグループのデータ解析基盤
Apache Solr 検索エンジン入門
RANCHERを使ったDev(Ops)
Sesión 1 introdución online
Возможности сервиса
พิชิตชัยชาญ วรรณบุตร
Emmelienkneppersefashionv1 3zondernotes-zondertommyh-110624113149-phpapp01 (2)
Guia de estudio metodologia de la investigacion se puede bajar universidad s...
2016-08 PM VDC veröffentlicht Whitepaper Virtuelle Techniken im Automobilbau
Ad

Similar to JJUG CCC リクルートの Java に対する取り組み (20)

PDF
Building modernapplicationwithelasiccloud
PPTX
The new LINE Ads Platform
PPTX
システム高速化フォーラム向け プッシュ通知基盤のアーキテクチャ
PPTX
あなたの知っているSAPは古いかもしれません
PDF
リクルート式Hadoopの使い方
PDF
GraphQL入門 (AWS AppSync)
PDF
Iot algyan jhirono 20190111
PDF
クラウド鎖国からクラウド維新へ
PDF
20180124_ソフトウェアテストを効率的に実施するためのデータの仮想化と自動化とは? by 株式会社インサイトテクノロジー 益秀樹
PDF
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
PDF
[Developers Summit 2018] Microsoft AIプラットフォームによるインテリジェント アプリケーションの構築
PDF
Reco choku tech night #09 -reinvent2018報告会-
PPTX
研究用途でのAWSの利用事例と機械学習について
PDF
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
PDF
[ML15]Class Cat佐々木さん「いち早く人工知能テクノロジーを取り入れた製品・サービスを市場に展開するには?」
PDF
ASP.NET シングル ページ アプリケーション (SPA) 詳説
PDF
[よくわかるクラウドデータベース] リクルートにおけるRedshift導入・活用事例
PDF
AI-first Code Editor 「Cursor」の機能紹介
PDF
リクルートのビッグデータ活用基盤とデータ活用に向けた取組み
PDF
「進化し続けるインフラ」のためのマルチアカウント管理
Building modernapplicationwithelasiccloud
The new LINE Ads Platform
システム高速化フォーラム向け プッシュ通知基盤のアーキテクチャ
あなたの知っているSAPは古いかもしれません
リクルート式Hadoopの使い方
GraphQL入門 (AWS AppSync)
Iot algyan jhirono 20190111
クラウド鎖国からクラウド維新へ
20180124_ソフトウェアテストを効率的に実施するためのデータの仮想化と自動化とは? by 株式会社インサイトテクノロジー 益秀樹
GTC Japan 2016 Rescaleセッション資料「クラウドHPC ではじめるDeep Learning」- Oct/5/2016 at GTC ...
[Developers Summit 2018] Microsoft AIプラットフォームによるインテリジェント アプリケーションの構築
Reco choku tech night #09 -reinvent2018報告会-
研究用途でのAWSの利用事例と機械学習について
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
[ML15]Class Cat佐々木さん「いち早く人工知能テクノロジーを取り入れた製品・サービスを市場に展開するには?」
ASP.NET シングル ページ アプリケーション (SPA) 詳説
[よくわかるクラウドデータベース] リクルートにおけるRedshift導入・活用事例
AI-first Code Editor 「Cursor」の機能紹介
リクルートのビッグデータ活用基盤とデータ活用に向けた取組み
「進化し続けるインフラ」のためのマルチアカウント管理

More from Recruit Technologies (20)

PDF
新卒2年目が鍛えられたコードレビュー道場
PDF
カーセンサーで深層学習を使ってUX改善を行った事例とそこからの学び
PDF
Rancherを活用した開発事例の紹介 ~Rancherのメリットと辛いところ~
PDF
Tableau活用4年の軌跡
PDF
HadoopをBQにマイグレしようとしてる話
PDF
LT(自由)
PDF
銀行ロビーアシスタント
PDF
ユーザー企業内製CSIRTにおける対応のポイント
PDF
ユーザーからみたre:Inventのこれまでと今後
PDF
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
PDF
EMRでスポットインスタンスの自動入札ツールを作成する
PDF
リクルートにおけるセキュリティ施策方針とCSIRT組織運営のポイント
PDF
ユーザー企業内製CSIRTにおける対応のポイント
PDF
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
PDF
「リクルートデータセット」 ~公開までの道のりとこれから~
PDF
運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~
PDF
リクルートにおける画像解析事例紹介と周辺技術紹介
PDF
Spring “BigData”
PDF
Struggle against cross-domain data complexity in Recruit group
PDF
Case study of DevOps for Hadoop in Recruit.
新卒2年目が鍛えられたコードレビュー道場
カーセンサーで深層学習を使ってUX改善を行った事例とそこからの学び
Rancherを活用した開発事例の紹介 ~Rancherのメリットと辛いところ~
Tableau活用4年の軌跡
HadoopをBQにマイグレしようとしてる話
LT(自由)
銀行ロビーアシスタント
ユーザー企業内製CSIRTにおける対応のポイント
ユーザーからみたre:Inventのこれまでと今後
Struggling with BIGDATA -リクルートおけるデータサイエンス/エンジニアリング-
EMRでスポットインスタンスの自動入札ツールを作成する
リクルートにおけるセキュリティ施策方針とCSIRT組織運営のポイント
ユーザー企業内製CSIRTにおける対応のポイント
リクルートテクノロジーズが語る 企業における、「AI/ディープラーニング」活用のリアル
「リクルートデータセット」 ~公開までの道のりとこれから~
運用で泣かないアーキテクチャで動く原稿作成支援システム ~リクルートにおけるDeepLearning活用事例~
リクルートにおける画像解析事例紹介と周辺技術紹介
Spring “BigData”
Struggle against cross-domain data complexity in Recruit group
Case study of DevOps for Hadoop in Recruit.

JJUG CCC リクルートの Java に対する取り組み

  • 1. リクルートテクノロジーズ 宮川 リクルートにおけるソリューション開拓と実装展開 〜elasticsearchによる検索基盤と新ソリューションの開拓
  • 2. 2 宮川 典久 リクルートテクノロジーズ APソリューショングループ 自己紹介 Twitter @m_nori 出身地 東京 趣味 ロードバイク ゲーム(最近はMH4G) 折り紙
  • 3. 3 (C) Recruit Technologies Co.,Ltd. All rights reserved. アジェンダ 1.はじめに 2.次世代検索基盤について 3.サイト展開へ向けての取り組み 4.まとめ
  • 5. 旅行 IT/トレンド 生活/地域情報 グルメ・美容 ライフスタイル領域 ライフイベント領域 進学 就職 結婚 転職 住宅購入 車購入 出産/育児 「選択・意思決定」を支援する情報サービスの提供 →「まだ、ここにない、出会い。」の実現へ リクルートとは 5
  • 6. リクルートキャリア リクルートジョブズ リクルートスタッフィング リクルート住まいカンパニー リクルートライフスタイル リクルートマーケティングパートナーズ スタッフサービス・ホールディングス リクルートアドミニストレーション リクルートコミュニケーションズ 事業会社 機能会社 インフラ部門 大規模プロジェクト推進部門 UI設計/SEO部門 ビッグデータ機能部門 テクノロジーR&D部門 事業・社内IT推進部門 リクルート ホールディングス リクルートとは、 主要7事業会社+3機能会社 で構成されるグループ企業群 6 リクルートテクノロジーズとは
  • 7. リクルートテクノロジーズの役割 7 (C) Recruit Technologies Co.,Ltd. All rights reserved. 開拓 実装、展開 運用 テクノロジー ライフサイクル ≪テクノロジーへの考え方≫ 「開拓」「実装・展開」を経た「運用」でリクルートへの利益貢献を行う。
  • 8. リクルートテクノロジーズの役割 8 (C) Recruit Technologies Co.,Ltd. All rights reserved. 広範囲のビジネスに装 着し、効果を最大化さ せるための改善を行い、 事業貢献利益を追究 Rグループのビジネスに 短・中期的に実活用の可能 性がある技術をリサーチ 対象技術における事業化 への検証を行い、評価・選 定する 開拓(実活用研究) 実際に事業へ適用 し、より広範囲に 利用するための型 化やスキームを構 築 実装・展開 運用 実施内容 リクルートテクノロジーズ(短・中期的視野) 利益を目的としない中長期的な 視点に立ち、新技術や新手法の 研究/発明を行い、論文発表す ることを目指す 要素基礎技術の研究 社外(中・長期的視野) 技術数の 推移イメージ 年間約200の技術をリサーチし、 約30の技術を評価・選定 年間数個〜10個の 技術を展開 運用フェーズまで 移行された技術が蓄積 無数の新技術を研究/発明
  • 9. •サイト横断でのアーキテクト領域を担当し、 サイトに役立つソリューションを展開する グループ •社内フレームワークや性能チューニング等 をソリューション化し運用している。 •運用だけでなく、技術ベースでサイトに貢 献するため、ソリューションの開拓や実 装・展開も担う ASGとATL 9 (C) Recruit Technologies Co.,Ltd. All rights reserved. •新しい技術の開拓や次のトレンドを察知し、 未来のサービスに活かせるソリューション を生み出すグループ •先端技術をベースとしたソリューションを 作り、サイト内でフィジビリティを行う。 どちらもリクルートテクノロジーズ内でアプリケーションの開発を担当する組織
  • 10. ASGとATL 10 (C) Recruit Technologies Co.,Ltd. All rights reserved. 技術数の 推移イメージ ATL ASG 開拓(実活用研究) 実装・展開 運用 テーマによっては最初か ら協同する
  • 11. リクルートにおけるJavaへの取り組み 11 (C) Recruit Technologies Co.,Ltd. All rights reserved. 多くのサイトでR2FrameworkというJava製の社内フレームワークを使っているた め、リクルートはJava非常にお世話になっています! ✖
  • 13. 次世代検索基盤とは 13 (C) Recruit Technologies Co.,Ltd. All rights reserved. Query Analyze Search System リクルート内のサイトに対して •検索品質 •フィードバック •検索機能追加 •メトリクス など提供する次世代検索基盤
  • 14. アーキテクチャ 14 (C) Recruit Technologies Co.,Ltd. All rights reserved. ✖ 殆どの機能をelasticsearchのプラグインとして実装
  • 15. elasticsearchとは 15 (C) Recruit Technologies Co.,Ltd. All rights reserved. オープンソースの全文検索エンジン 【特徴】 •Apache Luceneがベース •リアルタイム性 •スキーマレス •分散環境 •RESTful API •楽観的バージョン制御 最近はKibanaと組み合わせたログモニタリングによく使われている。 elasticsearch自体については18時からの@johtaniの セッションで詳細に話してくれると思います
  • 16. 体制と役割 16 (C) Recruit Technologies Co.,Ltd. All rights reserved. Qass サイト提供I/F 検索基本機能 機械学習 インフラ Qass利用サイト Hadoop開発 インフラ構築 elasticsearch プラグイン開発 導入支援 タスク 組織 ASG ATL BDG ISG
  • 17. 提供する機能 17 (C) Recruit Technologies Co.,Ltd. All rights reserved. Qass サイト提供I/F 検索基本機能 機械学習 インフラ •Suggest •Results Blending •Query A/B Test •Custom Tokenizer •Query Boosting •Speller 機能 •User Feed Back •Dictionary
  • 18. ユーザーフィードバック 18 (C) Recruit Technologies Co.,Ltd. All rights reserved. ビーコンサーバ Hadoop基盤
  • 19. Hadoopによる機械学習の活用 19 (C) Recruit Technologies Co.,Ltd. All rights reserved. 機械学習辞書 ビーコンデータ ・入力中のキーイベントを収集 「牛角」の読みが「ぎゅうかく」で あることを学習! 牛角 翌日「ぎゅうかく」で検索してみると・・・ ※入力途中で「牛角」を入力候補に表示! 検索 ※「牛角」に漢字変換してから検索 特殊な読み仮名は通常手動で辞書登録しないと仮名検索ができない 例)「ぎゅうかく」と入力 検索ログ
  • 21. Suggest+Beacon サーバ 各サイト Qassのシステム構成 21 (C) Recruit Technologies Co.,Ltd. All rights reserved. APサーバ Batchサーバ QassPlugin Qass Analizer コンテンツ インデックス シノニム 機械学習辞書 マッピング HDFS 収集データ クエリーログ ビーコンログ コンテンツ データ 運用管理 Batchサーバ Qass Analizer サジェスト インデックス 集計結果 シノニム 機械学習辞書 マッピング サジェスト データ
  • 22. Suggest+Beacon サーバ 各サイト 通常の検索 22 (C) Recruit Technologies Co.,Ltd. All rights reserved. APサーバ Batchサーバ QassPlugin Qass Analizer コンテンツ インデックス シノニム 機械学習辞書 マッピング HDFS 収集データ クエリーログ ビーコンログ コンテンツ データ 運用管理 Batchサーバ Qass Analizer サジェスト インデックス ユーザ操作は全て Beaconサーバに送信
  • 23. Suggest+Beacon サーバ 各サイト サジェスト 23 (C) Recruit Technologies Co.,Ltd. All rights reserved. APサーバ Batchサーバ QassPlugin Qass Analizer コンテンツ インデックス シノニム 機械学習辞書 マッピング HDFS 収集データ クエリーログ ビーコンログ コンテンツ データ 運用管理 Batchサーバ Qass Analizer サジェスト インデックス
  • 24. Suggest+Beacon サーバ 各サイト サジェスト 24 (C) Recruit Technologies Co.,Ltd. All rights reserved. APサーバ Batchサーバ QassPlugin Qass Analizer コンテンツ インデックス シノニム 機械学習辞書 マッピング HDFS 収集データ クエリーログ ビーコンログ コンテンツ データ 運用管理 Batchサーバ Qass Analizer サジェスト インデックス
  • 25. Suggest+Beacon サーバ 各サイト 機械学習 25 (C) Recruit Technologies Co.,Ltd. All rights reserved. APサーバ Batchサーバ QassPlugin Qass Analizer コンテンツ インデックス シノニム 機械学習辞書 マッピング HDFS 収集データ 集計結果 シノニム 機械学習辞書 マッピング Map/Reduce サジェスト データ クエリーログ ビーコンログ コンテンツ データ 運用管理 Batchサーバ Qass Analizer サジェスト インデックス
  • 26. 更新面の管理 26 (C) Recruit Technologies Co.,Ltd. All rights reserved. プラットフォームとして提供しているため、サイトによってインデックス更新の方 針やタイミングが異なるのを実現できるようにする必要がある。 サイトA 日時で差分更新のみ サイトB 日次の差分更新 + 月次で全件更新→翌日反映 サイトC 週次で全件更新→月曜朝8時に反映
  • 27. 更新面の管理 27 (C) Recruit Technologies Co.,Ltd. All rights reserved. QassPlugin ItemIndex001 SearchIndex(Alias) 検索 更新 UpdateIndex(Alias) インデックスを直接参照するのではなくelasticsearchのAlias機能を活用すること で、検索面と更新面を間接的に参照。 ItemIndex002
  • 28. 更新面の管理 28 (C) Recruit Technologies Co.,Ltd. All rights reserved. QassPlugin ItemIndex001 SearchIndex(Alias) 検索 更新 UpdateIndex(Alias) 検索面を表に出すタイミングでAliasの切り替えを実施。 インデックス毎に連番でバージョン番号を付けて管理を行う。 ItemIndex002 ItemIndex003 一定期間経過後に削除
  • 29. 辞書更新への対応 29 (C) Recruit Technologies Co.,Ltd. All rights reserved. シノニム 機械学習辞書 マッピング Qass Analizer 途中から異なる辞書を使うと不整合が発生するため、辞書を反映させるのはインデ ックスを作り直したタイミングにする必要がある。 焼肉→焼き肉 ◯◯焼き肉 △△焼肉 ◯◯焼き肉 △△焼き肉 シノニム 機械学習辞書 マッピング Qass Analizer 焼き肉→焼肉 ◯◯焼き肉 △△焼き肉 辞書を更 新 □□焼き肉 □□焼肉
  • 30. 辞書更新への対応 30 (C) Recruit Technologies Co.,Ltd. All rights reserved. ItemIndex001 ItemIndex002 ItemIndex003 シノニム 機械学習辞書 マッピング シノニム 機械学習辞書 マッピング シノニム 機械学習辞書 マッピング Dictionary001 Dictionary002 Dictionary003 Qass Analizer QassPlugin SearchIndex(Alias) UpdateIndex(Alias) 検索 更新 Indexバージョンごとに辞書セットを作成。 各インデックスを使う際にどの辞書を使うかをプラグインにて管理。
  • 31. Solrからの移行 31 (C) Recruit Technologies Co.,Ltd. All rights reserved. サイト側アプリケーションサーバ 検索 (http) 検索 (http) Solr 検索式 Solr 検索式 現状多くのサイトで全文検索エンジンとしてSolrを利用している。 そのため、プラグイン内でSolrクエリーを解釈することでサイト側は手を入れずに 導入を行えるように対応。 SolrとのA/Bテストにも活用!
  • 33. Java8への対応 33 (C) Recruit Technologies Co.,Ltd. All rights reserved. 社内フレームワークのJava8化も行い、各サイトのJava8化に向けて推進していま す! ASGでもATLとも連携し、ライブラリのOSS化も積極的に行っていく予定です!