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
OpenSearchを使って ごちクルの検索画面を爆速にする
Search
Shinpei.Kondo
May 12, 2023
Programming
0
530
OpenSearchを使って ごちクルの検索画面を爆速にする
for スタフェス Meetup #3 - PJの技術的取り組み公開
https://stafes.connpass.com/event/279671/
Shinpei.Kondo
May 12, 2023
Tweet
Share
More Decks by Shinpei.Kondo
See All by Shinpei.Kondo
8年運用しているCakePHPのECサイトをLaravelにリプレイスした一年後の話
konpay
1
410
Other Decks in Programming
See All in Programming
AWS IaCの注目アップデート 2024年10月版
konokenj
3
3k
VR HMDとしてのVision Pro+ゲーム開発について
yasei_no_otoko
0
100
Generative AI Use Cases JP (略称:GenU)奮闘記
hideg
0
150
WEBエンジニア向けAI活用入門
sutetotanuki
0
300
Amazon Neptuneで始めてみるグラフDB-OpenSearchによるグラフの全文検索-
satoshi256kbyte
4
310
qmuntal/stateless のススメ
sgash708
0
120
破壊せよ!データ破壊駆動で考えるドメインモデリング / data-destroy-driven
minodriven
16
4k
ECS Service Connectのこれまでのアップデートと今後のRoadmapを見てみる
tkikuc
2
200
RailsのPull requestsのレビューの時に私が考えていること
yahonda
5
1.7k
Pinia Colada が実現するスマートな非同期処理
naokihaba
2
150
Why Spring Matters to Jakarta EE - and Vice Versa
ivargrimstad
0
920
詳細解説! ArrayListの仕組みと実装
yujisoftware
0
470
Featured
See All Featured
Thoughts on Productivity
jonyablonski
67
4.3k
The Language of Interfaces
destraynor
154
24k
Happy Clients
brianwarren
97
6.7k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Building an army of robots
kneath
302
42k
Automating Front-end Workflow
addyosmani
1365
200k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
13
1.9k
Statistics for Hackers
jakevdp
796
220k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Unsuck your backbone
ammeep
668
57k
RailsConf 2023
tenderlove
29
880
YesSQL, Process and Tooling at Scale
rocio
167
14k
Transcript
OpenSearchを使って ごちクルの検索画面を爆速にする
• はじめに • 自己紹介 • ごちクルの過去と現在 • OpenSearchを使った検索速度改善 • おわりに
お品書き
ここ一年でごちクルのチームが大きく改善しました。 その結果、様々な課題を解決できるようになったので、解決した課題の一つとして OpenSearch導入で検索の速度を改善したことについてお話します。 はじめに
自己紹介 • 近藤 心平 (HN.こんぺい) • ごちクルPJ TechPM • 入社2017年
• 社内基盤 → ごちクルPJ • PHPer • 最近0.9才の息子にメガネ壊されました
ごちクルの過去と現在
ごちクルとは • お弁当 / ケータリングを中心とした食のECモール • リーズナブルなお弁当から有名店まで幅広く対応 • 会議弁当やイベント、学校行事などに利用されています •
商品数: 13,000以上 • 2012年から運用
ごちクルの歴史 • 2012年にCakePHPでスタート • 2019年にLaravelへリプレイス ◦ CakePHP 2 -> Laravel
5 ◦ jQuery1.10 -> Vue.js 2.6 • データベースは変更なし
ごちクルの歴史 • リプレイスした後も課題が残っていた • 全体的にレスポンス速度が遅い ◦ 特に検索画面の速度が遅い • ユースケースに沿っていないUI •
非同期通信が多くいろんな所でローディングが多い • など
ごちクルチーム エ ン ジ ニ ア こんどう backend PdM PMM
ドメインマスター PdM 冷静さNo1 PdM SEO担当 PdM 営業 カスタマー サクセス 商品開発 デザ イナー エンジニアに理解力の高いデザイナー 関連部署 これまでのごちクル エンジニアは僕一人 ... 若手のエース backend
採用が進みチームが拡大!! 修正 現在のごちクル 元CTO PL / backend 猫好き backend /
frontend 大阪在住 backend / frontend 若手のエース backend UX Enhancement Growth & Engagement エ ン ジ ニ ア こんどう backend 育休復帰即活躍 frontend SEO担当業務委託 backend / frontend 業務委託 backend / frontend PdM PMM データ分析強い PMM ドメインマスター PdM 冷静さNo1 PdM SEO担当 PdM 福岡在住 PMM 営業 カスタマー サクセス 商品開発 デザ イナー エンジニアに理解力の高いデザイナー 関連部署
直近の改善例 OpenSearchを使った検索速度改善
ごちクルの歴史 • リプレイスした後も課題が残っていた • 全体的にレスポンス速度が遅い ◦ 特に検索画面の速度が遅い • ユースケースに沿っていないUI •
非同期通信が多く画面上でローディングが多い • など この改善について深掘りします。
ごちクルの検索とは • お弁当の検索 ◦ 社内会議で◦月◦日にn個お弁当が必要 ◦ どんなお弁当があるのか調査 (購入するかは不明) • 全文検索が遅い
◦ 2012年からデータ構造が変わっていない ▪ アプリケーションが改善しても、 DBの改善は行われておらず結果として、 indexが効かない、 大量のJOINが発生するなどで商品検索が遅い ▪ 頑張ってRDBで実装していた
OpenSearchの導入による課題解決 テキスト検索が早い 複雑なSQL joinが多く index効かない n+1の発生 負荷 レスポンス速度↓ スケールが楽 構造変化に柔軟に対応できる
それ以外にもメリットが!
検証段階ですが、検索速度が10倍早くなった! OpenSearch導入の効果 • 期待される効果 ◦ 検索を利用しやすくなることで、離脱が減りエンゲージメントが向上する ◦ RDBに検索クエリが流れなくなることで、 DB負荷削減やデータ構造のリファクタリングなどが行いや すくなる
• 今後期待できる効果 ◦ 位置情報検索と言った新たな検索を追加できるようになる
おわりに • ex-CTO等強いエンジニアのJOINで、これまで着手できなかった課題の改善が進み 始めました。 • 過去の課題の対応だけでなく、UXをチームを作り新しい取り組みにも挑戦できるよう になりました。 • 過去の課題の解消や新しいことへの挑戦に興味がある方、ごちクルだと超楽しいで す!!
ありがとうございました!!