Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

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

6 594 vues

Publié le

JJUG CCC でリクルートテクノロジーズのJavaに対する取り組みを紹介しました。

Publié dans : Logiciels
  • Identifiez-vous pour voir les commentaires

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

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

×