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
910
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
700
Search platform migration at MercariUS/Mercari USにおけるElasticsearchへの検索基盤移行:マイグレーションの知見と課題
pakio
0
560
Shard Balancingについて理解したい/Understanding shard rebalancing in Elasticsearch
pakio
0
730
Rallyで支えるバージョン追従
pakio
0
900
CUEを使ったJSONテンプレート管理
pakio
0
830
宣言的かつ安全に管理するElasticsearch/Declarative management for Elasticsearch
pakio
0
880
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
社内で最大の技術的負債のリファクタリングに取り組んだお話し
kidooonn
1
550
Amazon Personalizeのレコメンドシステム構築、実際何するの?〜大体10分で具体的なイメージをつかむ〜
kniino
1
100
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
120
ノーコードデータ分析ツールで体験する時系列データ分析超入門
negi111111
0
410
DMARC 対応の話 - MIXI CTO オフィスアワー #04
bbqallstars
1
160
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.6k
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
290
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
複雑なState管理からの脱却
sansantech
PRO
1
140
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
470
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
730
Featured
See All Featured
Writing Fast Ruby
sferik
627
61k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Building Applications with DynamoDB
mza
90
6.1k
Practical Orchestrator
shlominoach
186
10k
We Have a Design System, Now What?
morganepeng
50
7.2k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
A better future with KSS
kneath
238
17k
Designing Experiences People Love
moore
138
23k
Unsuck your backbone
ammeep
668
57k
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