Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ZOZOTOWNとElasticsearchのこれまでこれから / ZOZOTOWN and ...
Search
Kazuma Arimura
February 25, 2021
Technology
0
900
ZOZOTOWNとElasticsearchのこれまでこれから / ZOZOTOWN and Elasticsearch
2021/02/25
第40回Elasticsearch勉強会
Kazuma Arimura
February 25, 2021
Tweet
Share
More Decks by Kazuma Arimura
See All by Kazuma Arimura
Query Rulesの現在地
pakio
0
110
言語モデルを用いたQuery Categorizationへの取り組み / LM-based query categorization for query understanding
pakio
0
660
Search platform migration at MercariUS/Mercari USにおけるElasticsearchへの検索基盤移行:マイグレーションの知見と課題
pakio
0
550
Shard Balancingについて理解したい/Understanding shard rebalancing in Elasticsearch
pakio
0
710
Rallyで支えるバージョン追従
pakio
0
890
CUEを使ったJSONテンプレート管理
pakio
0
810
宣言的かつ安全に管理するElasticsearch/Declarative management for Elasticsearch
pakio
0
840
8.0からのkNNはどう変わったのか / How kNN search changed in the Elasticsearch 8.0
pakio
1
1.8k
マッピング設定最適化によるパフォーマンス改善の取り組み + match_only_textのパフォーマンス検証 / Improving indexing performance by specifying mapping properties.
pakio
0
400
Other Decks in Technology
See All in Technology
CyberAgent 生成AI Deep Dive with Amazon Web Services / genai-aws
cyberagentdevelopers
PRO
1
480
オーティファイ会社紹介資料 / Autify Company Deck
autifyhq
9
120k
カメラを用いた店内計測におけるオプトインの仕組みの実現 / ai-optin-camera
cyberagentdevelopers
PRO
1
120
ガバメントクラウド先行事業中間報告を読み解く
sugiim
1
1.2k
ガチ勢によるPipeCD運用大全〜滑らかなCI/CDを添えて〜 / ai-pipecd-encyclopedia
cyberagentdevelopers
PRO
3
200
なんで、私がAWS Heroに!? 〜社外の広い世界に一歩踏み出そう〜
minorun365
PRO
6
1.1k
Product Engineer Night #6プロダクトエンジニアを育む仕組み・施策
hacomono
PRO
1
460
一休.comレストランにおけるRustの活用
kymmt90
3
580
ユーザーの購買行動モデリングとその分析 / dsc-purchase-analysis
cyberagentdevelopers
PRO
2
100
Autify Company Deck
autifyhq
1
39k
プロダクトエンジニアが活躍する環境を作りたくて 事業責任者になった話 ~プロダクトエンジニアの行き着く先~
gimupop
1
460
【若手エンジニア応援LT会】AWSで繋がり、共に成長! ~コミュニティ活動と新人教育への挑戦~
kazushi_ohata
0
180
Featured
See All Featured
Writing Fast Ruby
sferik
626
61k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
KATA
mclloyd
29
13k
How STYLIGHT went responsive
nonsquared
95
5.2k
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
Being A Developer After 40
akosma
86
590k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Teambox: Starting and Learning
jrom
132
8.7k
The World Runs on Bad Software
bkeepers
PRO
65
11k
Code Reviewing Like a Champion
maltzj
519
39k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
37
1.8k
Product Roadmaps are Hard
iamctodd
PRO
48
10k
Transcript
ZOZOTOWNとElasticsearchの これまで/これから 2021/02/25 第40回Elasticsearch勉強会 株式会社ZOZOテクノロジーズ ZOZOTOWN部/ECプラットフォーム部 エンジニア 有村 和真 Copyright ©
ZOZO Technologies, Inc.
© ZOZO Technologies, Inc. 株式会社ZOZOテクノロジーズ ZOZOTOWN部 検索チーム 兼 ECプラットフォーム部 検索基盤チーム
エンジニア 有村 和真 2019年4月 新卒入社 Elastic Contributor Program 2021はギリギリブロンズ外れた ので、今年は頑張る Twitter: @paki0o / GitHub: @pakio 2
© ZOZO Technologies, Inc. https://zozo.jp/ • 日本最大級のファッション通販サイト • 1,300以上のショップ、7,900以上のブランドの取り扱い(ともに2020年6 月末時点)
• 常時83万点以上の商品アイテム数と毎日平均3,000点以上の新着商品 を掲載 • 即日配送サービス • ギフトラッピングサービス • ツケ払い など 3
© ZOZO Technologies, Inc. 目次 • Elasticsearchがどこで利用されているか • ZOZOTOWNとElasticsearchのこれまでの歩み •
Elastic Cloudを本番で運用してみて • おすすめ順をどう実現しているか • ZOZOTOWNとElasticsearchのこれからの歩み 4
© ZOZO Technologies, Inc. 目次 • Elasticsearchがどこで利用されているか • ZOZOTOWNとElasticsearchのこれまでの歩み •
Elastic Cloudを本番で運用してみて • おすすめ順をどう実現しているか • ZOZOTOWNとElasticsearchのこれからの歩み 5
© ZOZO Technologies, Inc. 6 • 検索結果 • 検索リクエストロギング •
サジェスト Elasticsearchがどこで利用されているか ユーザーログを活用した ZOZOTOWNの検索サジェスト改善
© ZOZO Technologies, Inc. 目次 • Elasticsearchがどこで利用されているか • ZOZOTOWNとElasticsearchのこれまでの歩み •
Elastic Cloudを本番で運用してみて • おすすめ順をどう実現しているか • ZOZOTOWNとElasticsearchのこれからの歩み 7
© ZOZO Technologies, Inc. ZOZOTOWNとElasticsearchのこれまでの歩み 8 2017 2018 2019
2020 2021 Google Search Appliance 検索バックエンド 検索100% Elasticsearch化 GSA サービス終了に 伴う乗り替え
© ZOZO Technologies, Inc. • 在庫状態・商品情報の返却もElasticsearchで賄う ◦ (ほぼ)リアルタイムに商品情報を反映 ◦ 1k
doc/secくらいでindex requestが24時間走っている • リプレイス結果、ほぼ倍速。タイムアウトも激減。 9 ZOZOTOWNとElasticsearchのこれまでの歩み ZOZOTOWNの検索基盤における Elasticsearch移行で得た知見 ZOZOTOWNにおける 検索速度改善までの道のり
© ZOZO Technologies, Inc. 目次 • Elasticsearchがどこで利用されているか • ZOZOTOWNとElasticsearchのこれまでの歩み •
Elastic Cloudを本番で運用してみて • おすすめ順をどう実現しているか • ZOZOTOWNとElasticsearchのこれからの歩み 10
© ZOZO Technologies, Inc. 2020/04 以降リリースされたElastic Cloudの機能 (一部抜粋) 11 Elastic
Cloudを本番で運用してみて - 直近のアップデート
© ZOZO Technologies, Inc. Dedicated Coordinating Node • Data
nodes • ML nodes • Hot tier • Warm tier • new Coordinating nodes ある程度柔軟な、用途に合わせたノード構成 が可能に 12 Elastic Cloudを本番で運用してみて - 直近のアップデート https://www.elastic.co/blog/elastic-cloud-enterprise-2-5-dedicated-c oordinating-layer-snapshot-lifecycle-management-and-more
© ZOZO Technologies, Inc. EC2 M5d/R5d Support M5d
• CPU性能向上 • ディスク性能向上 R5d • メモリ性能向上 • ディスク性能向上 13 Elastic Cloudを本番で運用してみて - 直近のアップデート https://www.elastic.co/blog/amazon-ec2-m5d-r5d-instances-on-elastic-cloud
© ZOZO Technologies, Inc. Elastic Cloud Control(ecctl) CLIベースでの操作が可能に IaC化ができるようになった🙌
↓GitHub Actionsから呼びたい方には↓ 14 Elastic Cloudを本番で運用してみて - 直近のアップデート https://github.com/yokawasa/action-setup-ecctl
© ZOZO Technologies, Inc. Logging Features 2ステップでログの出力先変更、検索 が可能に
1. ログ用クラスタを作成(既存も可) 2. 出力先に指定 それまでは毎回サポートに依頼 (大変お世話になりました) 15 Elastic Cloudを本番で運用してみて - 直近のアップデート https://www.elastic.co/blog/monitoring-elastic-cloud-deployment-logs-and-metrics
© ZOZO Technologies, Inc. Cross-Cluster Replication / Corss-Cluster Search
クラスタ横断レプリケーション / クラスタ横断検索が ついにElastic Cloudでもサポート (6.7リリース機能) https://www.elastic.co/blog/whats-new-cloud-autoscaling-cross-cluster-search-data-tiers ⇒ ちょっと遅れてサポートされるケースはたまにあり 16 Elastic Cloudを本番で運用してみて - 直近のアップデート
© ZOZO Technologies, Inc. • 基本的に最新バージョン/1つ前のマイナーバージョン/1つ前のメジャー バージョンが提供される • 記載のないバージョンを選択したい際には、サポートに連絡
◦ 弊チームでは、基本的にアプリケーション側を追いつかせる 17 Elastic Cloudを本番で運用してみて - バージョン制約
© ZOZO Technologies, Inc. Pros • CLI対応やインスタンスタイプの強化など、着実な進歩 • 自前運用しなくても、割と柔軟に構成変更できる •
ログが2ステップで別クラスタに吐けるので、運用が楽 Cons • リリースされた機能がしばらく使えないことも • 過去バージョンの利用は問い合わせベースなので、基本最新 • スケールアップが稀に失敗する 18 Elastic Cloudを本番で運用してみて - まとめ
© ZOZO Technologies, Inc. 目次 • Elasticsearchがどこで利用されているか • ZOZOTOWNとElasticsearchのこれまでの歩み •
Elastic Cloudを本番で運用してみて • おすすめ順をどう実現しているか • ZOZOTOWNとElasticsearchのこれからの歩み 19
© ZOZO Technologies, Inc. • ZOZOTOWNの検索結果のパーソナライズPJ • ユーザの行動・属性を元にパーソナライズされた検索結果を返す 20 おすすめ順とは
ZOZOTOWNを支える検索パーソナライズ基盤 / zozotech_gcp_01 https://speakerdeck.com/dama_yu/zozotech-gcp-01
© ZOZO Technologies, Inc. Function Scoreクエリで実装 • 商品メタ情報 ×
ユーザ属性でスコア計算・ソートを行う • modifier, score_modeの組み合わせで表現の自由度が高い ◦ modifier : ベースとなるスコアに対する前処理 ▪ log ▪ square ▪ sqrt … ◦ score_mode : 算出されたスコアの集計方法 ▪ multiply ▪ sum ▪ avg … 21 おすすめ順をどう実現しているか
© ZOZO Technologies, Inc. 22 おすすめ順をどう実現しているか ユーザ情報 -> Function Scoreで実現
{ "base_score": "score_1", "scores": [ { "field": "hoge_id", "value": [ 1, 2 ], "score": 10 }, ... ] } { "query": { "function_score": {"query": {...}, "functions": [{ "filter": { "terms": {"hoge_id": [1,2] } }, "field_value_factor": { "field": "score_1", "factor": 10, "missing": 0, "modifier": "none" } }, ... ], "score_mode": "sum", "boost_mode": "replace" } } }
© ZOZO Technologies, Inc. • ElasticsearchのFunction Scoreクエリで実装 • 事前にインデキシング済みのメタ情報とユーザ属性の掛け合わせ
• Relevant SearchのChapter 9がオススメ 23 まとめ 引用 : https://www.manning.com/books/relevant-search
© ZOZO Technologies, Inc. 目次 • Elasticsearchがどこで利用されているか • ZOZOTOWNとElasticsearchのこれまでの歩み •
Elastic Cloudを本番で運用してみて • おすすめ順をどう実現しているか • ZOZOTOWNとElasticsearchのこれからの歩み 24
© ZOZO Technologies, Inc. • おすすめ順のさらなる強化 • 独立した検索マイクロサービスの立ち上げ 25
ZOZOTOWNとElasticsearchのこれからの歩み
© ZOZO Technologies, Inc. おすすめ順のさらなる強化 • LtRを導入した、機械学習ベースのリランキングを実施 •
プロダクション環境でのABテスト実施 ◦ 負荷面・速度面などで課題があり、今後改善を進める予定 26 ZOZOTOWNとElasticsearchのこれからの歩み
© ZOZO Technologies, Inc. 独立した検索マイクロサービスの立ち上げ Elasticsearchのみに依存した検索専門のマイクロサービス 2021/02初旬から稼働開始 27 ZOZOTOWNとElasticsearchのこれからの歩み
ZOZOTOWN 検索エンジニア 検索バックエンド / 検索基盤 / 検索研究 / SRE など 各種ポジション絶賛採用中です
© ZOZO Technologies, Inc. まとめ • ZOZOTOWNの検索は全てがElasticsearch上で動いている • Elastic Cloudはここ1年程で大きく変化している
◦ 過去に検討した方でも、再検討の余地あり • おすすめ順検索やLtRなど、検索体験の向上の幅が広がった 28
None