Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ZOZOTOWNとElasticsearchのこれまでこれから / ZOZOTOWN and ...

ZOZOTOWNとElasticsearchのこれまでこれから / ZOZOTOWN and Elasticsearch

2021/02/25
第40回Elasticsearch勉強会

Kazuma Arimura

February 25, 2021
Tweet

More Decks by Kazuma Arimura

Other Decks in Technology

Transcript

  1. © ZOZO Technologies, Inc. 株式会社ZOZOテクノロジーズ
 ZOZOTOWN部 検索チーム 兼
 ECプラットフォーム部 検索基盤チーム

    エンジニア 有村 和真
 2019年4月 新卒入社
 Elastic Contributor Program 2021はギリギリブロンズ外れた ので、今年は頑張る
 
 Twitter: @paki0o / GitHub: @pakio
 
 2
  2. © ZOZO Technologies, Inc. https://zozo.jp/
 • 日本最大級のファッション通販サイト
 • 1,300以上のショップ、7,900以上のブランドの取り扱い(ともに2020年6 月末時点)


    • 常時83万点以上の商品アイテム数と毎日平均3,000点以上の新着商品 を掲載
 • 即日配送サービス
 • ギフトラッピングサービス
 • ツケ払い など
 3
  3. © ZOZO Technologies, Inc. 目次
 • Elasticsearchがどこで利用されているか
 • ZOZOTOWNとElasticsearchのこれまでの歩み
 •

    Elastic Cloudを本番で運用してみて
 • おすすめ順をどう実現しているか
 • ZOZOTOWNとElasticsearchのこれからの歩み
 4
  4. © ZOZO Technologies, Inc. 目次
 • Elasticsearchがどこで利用されているか
 • ZOZOTOWNとElasticsearchのこれまでの歩み
 •

    Elastic Cloudを本番で運用してみて
 • おすすめ順をどう実現しているか
 • ZOZOTOWNとElasticsearchのこれからの歩み
 5
  5. © ZOZO Technologies, Inc. 6 • 検索結果
 • 検索リクエストロギング
 •

    サジェスト
 Elasticsearchがどこで利用されているか
 ユーザーログを活用した ZOZOTOWNの検索サジェスト改善
  6. © ZOZO Technologies, Inc. 目次
 • Elasticsearchがどこで利用されているか
 • ZOZOTOWNとElasticsearchのこれまでの歩み
 •

    Elastic Cloudを本番で運用してみて
 • おすすめ順をどう実現しているか
 • ZOZOTOWNとElasticsearchのこれからの歩み
 7
  7. © ZOZO Technologies, Inc. ZOZOTOWNとElasticsearchのこれまでの歩み
 
 8 2017 2018 2019

    2020 2021 Google Search Appliance 検索バックエンド
 検索100% Elasticsearch化 GSA サービス終了に 伴う乗り替え
  8. © ZOZO Technologies, Inc. • 在庫状態・商品情報の返却もElasticsearchで賄う
 ◦ (ほぼ)リアルタイムに商品情報を反映
 ◦ 1k

    doc/secくらいでindex requestが24時間走っている
 
 • リプレイス結果、ほぼ倍速。タイムアウトも激減。
 9 ZOZOTOWNとElasticsearchのこれまでの歩み
 
 ZOZOTOWNの検索基盤における Elasticsearch移行で得た知見 ZOZOTOWNにおける 検索速度改善までの道のり
  9. © ZOZO Technologies, Inc. 目次
 • Elasticsearchがどこで利用されているか
 • ZOZOTOWNとElasticsearchのこれまでの歩み
 •

    Elastic Cloudを本番で運用してみて
 • おすすめ順をどう実現しているか
 • ZOZOTOWNとElasticsearchのこれからの歩み
 10
  10. © 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
  11. © 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
  12. © ZOZO Technologies, Inc. Elastic Cloud Control(ecctl)
 
 CLIベースでの操作が可能に
 IaC化ができるようになった🙌


    
 
 
 ↓GitHub Actionsから呼びたい方には↓
 14 Elastic Cloudを本番で運用してみて - 直近のアップデート
 https://github.com/yokawasa/action-setup-ecctl
  13. © ZOZO Technologies, Inc. Logging Features
 
 2ステップでログの出力先変更、検索 が可能に
 


    1. ログ用クラスタを作成(既存も可)
 2. 出力先に指定
 
 
 それまでは毎回サポートに依頼
 (大変お世話になりました)
 15 Elastic Cloudを本番で運用してみて - 直近のアップデート
 https://www.elastic.co/blog/monitoring-elastic-cloud-deployment-logs-and-metrics
  14. © 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を本番で運用してみて - 直近のアップデート

  15. © ZOZO Technologies, Inc. Pros
 • CLI対応やインスタンスタイプの強化など、着実な進歩
 • 自前運用しなくても、割と柔軟に構成変更できる
 •

    ログが2ステップで別クラスタに吐けるので、運用が楽
 
 Cons
 • リリースされた機能がしばらく使えないことも
 • 過去バージョンの利用は問い合わせベースなので、基本最新
 • スケールアップが稀に失敗する
 
 18 Elastic Cloudを本番で運用してみて - まとめ

  16. © ZOZO Technologies, Inc. 目次
 • Elasticsearchがどこで利用されているか
 • ZOZOTOWNとElasticsearchのこれまでの歩み
 •

    Elastic Cloudを本番で運用してみて
 • おすすめ順をどう実現しているか
 • ZOZOTOWNとElasticsearchのこれからの歩み
 19
  17. © ZOZO Technologies, Inc. Function Scoreクエリで実装
 
 • 商品メタ情報 ×

    ユーザ属性でスコア計算・ソートを行う • modifier, score_modeの組み合わせで表現の自由度が高い
 ◦ modifier : ベースとなるスコアに対する前処理
 ▪ log
 ▪ square
 ▪ sqrt …
 ◦ score_mode : 算出されたスコアの集計方法
 ▪ multiply
 ▪ sum
 ▪ avg …
 21 おすすめ順をどう実現しているか

  18. © 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" } } }
  19. © ZOZO Technologies, Inc. • ElasticsearchのFunction Scoreクエリで実装
 
 • 事前にインデキシング済みのメタ情報とユーザ属性の掛け合わせ


    
 • Relevant SearchのChapter 9がオススメ
 23 まとめ
 引用 : https://www.manning.com/books/relevant-search
  20. © ZOZO Technologies, Inc. 目次
 • Elasticsearchがどこで利用されているか
 • ZOZOTOWNとElasticsearchのこれまでの歩み
 •

    Elastic Cloudを本番で運用してみて
 • おすすめ順をどう実現しているか
 • ZOZOTOWNとElasticsearchのこれからの歩み
 24
  21. © ZOZO Technologies, Inc. おすすめ順のさらなる強化
 
 • LtRを導入した、機械学習ベースのリランキングを実施
 
 •

    プロダクション環境でのABテスト実施
 ◦ 負荷面・速度面などで課題があり、今後改善を進める予定
 26 ZOZOTOWNとElasticsearchのこれからの歩み

  22. © ZOZO Technologies, Inc. まとめ
 • ZOZOTOWNの検索は全てがElasticsearch上で動いている
 • Elastic Cloudはここ1年程で大きく変化している


    ◦ 過去に検討した方でも、再検討の余地あり
 • おすすめ順検索やLtRなど、検索体験の向上の幅が広がった
 28