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
800
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
72
言語モデルを用いたQuery Categorizationへの取り組み / LM-based query categorization for query understanding
pakio
0
270
Search platform migration at MercariUS/Mercari USにおけるElasticsearchへの検索基盤移行:マイグレーションの知見と課題
pakio
0
420
Shard Balancingについて理解したい/Understanding shard rebalancing in Elasticsearch
pakio
0
350
Rallyで支えるバージョン追従
pakio
0
650
CUEを使ったJSONテンプレート管理
pakio
0
580
宣言的かつ安全に管理するElasticsearch/Declarative management for Elasticsearch
pakio
0
640
8.0からのkNNはどう変わったのか / How kNN search changed in the Elasticsearch 8.0
pakio
1
1.4k
マッピング設定最適化によるパフォーマンス改善の取り組み + match_only_textのパフォーマンス検証 / Improving indexing performance by specifying mapping properties.
pakio
0
350
Other Decks in Technology
See All in Technology
Automate your changelogs! Release Drafter
onenashev
PRO
2
410
Uniting Rust Servers and Clients through OpenAPI
ahl
0
430
Tohoku.Tech #1 「Cursorを使ったRaspberry Piの開発」by ねこまた
jun2882
0
140
fujiwara-ware OSSをひたすら紹介する/ya8-2024
fujiwara3
7
370
Azure AI サービス全体像と Prompt flow 紹介 - Forkwell Library
shohei1029
1
590
Autonomous Database - Dedicated 技術詳細 / adb-d_technical_detail_jp
oracle4engineer
PRO
2
4.9k
マイクロサービスを横断したGoのコードレビュー
yuyu_hf
PRO
1
120
最速思考でバクラク品質を! スタートアップのリアルな課題とQAの実践
nakanao
1
440
SSMエージェントはIAMロールの夢を見るか/ Do SSM Agents Dream Of IAM Roles?
yukihirochiba
0
1.4k
S3成長記録@Storage-JAWS#3
p0n
0
130
GitHub Actions Runner Controller
takesection
0
110
履歴データテーブルとの向き合い方_PHPerKaigi2024
gennei
25
6.7k
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
242
20k
Documentation Writing (for coders)
carmenintech
59
3.7k
Designing for humans not robots
tammielis
247
25k
The Art of Programming - Codeland 2020
erikaheidi
40
12k
Optimizing for Happiness
mojombo
369
69k
The Cult of Friendly URLs
andyhume
72
5.6k
It's Worth the Effort
3n
180
27k
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
178
11k
Typedesign – Prime Four
hannesfritz
36
2k
Rebuilding a faster, lazier Slack
samanthasiow
72
8.1k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
111
35k
Git: the NoSQL Database
bkeepers
PRO
421
63k
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