Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
1k
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
190
言語モデルを用いたQuery Categorizationへの取り組み / LM-based query categorization for query understanding
pakio
0
1.1k
Search platform migration at MercariUS/Mercari USにおけるElasticsearchへの検索基盤移行:マイグレーションの知見と課題
pakio
0
670
Shard Balancingについて理解したい/Understanding shard rebalancing in Elasticsearch
pakio
0
1.1k
Rallyで支えるバージョン追従
pakio
0
1.2k
CUEを使ったJSONテンプレート管理
pakio
0
980
宣言的かつ安全に管理するElasticsearch/Declarative management for Elasticsearch
pakio
0
1k
8.0からのkNNはどう変わったのか / How kNN search changed in the Elasticsearch 8.0
pakio
1
2.2k
マッピング設定最適化によるパフォーマンス改善の取り組み + match_only_textのパフォーマンス検証 / Improving indexing performance by specifying mapping properties.
pakio
0
520
Other Decks in Technology
See All in Technology
寫了幾年 Code,然後呢?軟體工程師必須重新認識的 DevOps
cheng_wei_chen
1
1.4k
AWSを使う上で最低限知っておきたいセキュリティ研修を社内で実施した話 ~みんなでやるセキュリティ~
maimyyym
2
330
Power of Kiro : あなたの㌔はパワステ搭載ですか?
r3_yamauchi
PRO
0
100
品質のための共通認識
kakehashi
PRO
3
250
世界最速級 memcached 互換サーバー作った
yasukata
0
340
Ruby で作る大規模イベントネットワーク構築・運用支援システム TTDB
taketo1113
1
270
SSO方式とJumpアカウント方式の比較と設計方針
yuobayashi
7
600
Playwright x GitHub Actionsで実現する「レビューしやすい」E2Eテストレポート
kinosuke01
0
580
AWS Security Agentの紹介/introducing-aws-security-agent
tomoki10
0
180
手動から自動へ、そしてその先へ
moritamasami
0
300
re:Inventで気になったサービスを10分でいけるところまでお話しします
yama3133
1
120
直接メモリアクセス
koba789
0
300
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
6k
Done Done
chrislema
186
16k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
970
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.3k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Into the Great Unknown - MozCon
thekraken
40
2.2k
Become a Pro
speakerdeck
PRO
31
5.7k
A Tale of Four Properties
chriscoyier
162
23k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Statistics for Hackers
jakevdp
799
230k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
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