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 Elasticsearch
Search
Kazuma Arimura
February 25, 2021
Technology
0
810
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
83
言語モデルを用いたQuery Categorizationへの取り組み / LM-based query categorization for query understanding
pakio
0
350
Search platform migration at MercariUS/Mercari USにおけるElasticsearchへの検索基盤移行:マイグレーションの知見と課題
pakio
0
460
Shard Balancingについて理解したい/Understanding shard rebalancing in Elasticsearch
pakio
0
450
Rallyで支えるバージョン追従
pakio
0
700
CUEを使ったJSONテンプレート管理
pakio
0
630
宣言的かつ安全に管理するElasticsearch/Declarative management for Elasticsearch
pakio
0
670
8.0からのkNNはどう変わったのか / How kNN search changed in the Elasticsearch 8.0
pakio
1
1.5k
マッピング設定最適化によるパフォーマンス改善の取り組み + match_only_textのパフォーマンス検証 / Improving indexing performance by specifying mapping properties.
pakio
0
370
Other Decks in Technology
See All in Technology
R3のコードから見る実践LINQ実装最適化・コンカレントプログラミング実例
neuecc
2
440
Delivering Millions of Messages within seconds @ Duolingo
pelelgrino
0
350
ワールドカフェI /チューターを改良する / World Café I and Improving the Tutors
ks91
PRO
0
120
今年のRubyKaigiはProfiler Year🤘
osyoyu
0
190
エンジニア候補者向け資料2024.04.24.pdf
macloud
0
3.3k
アクセシビリティを考慮したUI/CSSフレームワーク・ライブラリ選定
yajihum
2
1k
ServiceNow Knowledge Learning Rise up
manarobot
0
210
Postman v10リリース後を振り返る / Looking back at Postman v10 after release
yokawasa
1
160
Azure Container Apps + Bicep 〜 こんな感じで運用しています
kaz29
3
540
Cloud Native Java with Spring Boot (CNCF Aarhus, April 2024)
thomasvitale
1
180
今日からできる!簡単 .NET 高速化 Tips -2024 edition-
xin9le
3
790
VS CodeでAWSを操作しよう
smt7174
8
1.7k
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
73
5.2k
Designing for Performance
lara
601
67k
The Brand Is Dead. Long Live the Brand.
mthomps
49
29k
Done Done
chrislema
178
15k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
9
8.3k
Infographics Made Easy
chrislema
238
18k
VelocityConf: Rendering Performance Case Studies
addyosmani
320
23k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
20
1.9k
StorybookのUI Testing Handbookを読んだ
zakiyama
13
4.6k
Rails Girls Zürich Keynote
gr2m
91
13k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
125
32k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
40
4.4k
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