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
「うどん」の検索結果には何を出すべきか
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Sunggyu 'KEI' Rhie
July 31, 2019
Technology
2.3k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
「うどん」の検索結果には何を出すべきか
Rettyの検索の現状2019夏
Sunggyu 'KEI' Rhie
July 31, 2019
More Decks by Sunggyu 'KEI' Rhie
See All by Sunggyu 'KEI' Rhie
外国人が日本語の検索機能をElasticsearchで作ってみた
r4keisuke
3
1.2k
Other Decks in Technology
See All in Technology
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
190
Compose 新機能総まとめ / What's New in Jetpack Compose
yanzm
0
310
AICoEでAIネイティブ組織への進化
yukiogawa
0
190
そのドキュメント、自動化しませんか?
yuksew
1
270
OPENLOGI Company Profile for engineer
hr01
1
74k
事業価値を⽣み出すSREへ SREが担うべき意思決定の5層
kenta_hi
2
3.9k
ガバナンスの「ちょうどいい落とし所」を探れ!開発スピードを妨げない運用判断の勘所 / SRE NEXT 2026
genda
1
230
穢れた技術選定について
watany
17
5.4k
生成AI×AWS CDK×AWS FISで"振り返れる"ミニGameDayをつくろう
yoshimi0227
1
340
Type-safe IaC for Dart
coborinai
0
160
10年目を迎えた「ABEMA」がどのように AI 活用を推進して、AI 駆動開発にシフトしているのか / How ABEMA, entering its 10th year, is promoting the use of AI and shifting toward AI-driven development
miyukki
0
250
【Claude Code】鹿野さんに聞く 私の推しの並行開発環境 大公開 / claude-code-parallel-2026-07-15
tonkotsuboy_com
12
8.5k
Featured
See All Featured
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.7k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
67
56k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.4k
New Earth Scene 8
popppiees
3
2.4k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
350
Embracing the Ebb and Flow
colly
88
5.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
420
BBQ
matthewcrist
89
10k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.3k
Transcript
1 「うどん」の検索結果には何を出すべきか 李 晟圭
自己紹介(現在) 李 晟圭(イ・ソンギュ) 韓国出身 2016年からRetty在籍中 WEB/Search/地盤 Team Engineering Manager
自己紹介(明日から) 李 晟圭(イ・ソンギュ) 韓国出身 2016年からRetty在籍中 Search/地盤 Team Engineering Manager
日本最大級の実名グルメサービス「Retty」 実名制 オススメの口コミ 友人との「つながり」 口コミ内容はポジティブな“おすすめ”で
きるお店を投稿。 点数評価ではありません。 Rettyのサービス内で“友人”や“食の 嗜好が合う同士”がフォロー機能でつ ながっているSNS型です。 実名制口コミの信頼度が非常に高いグ ルメサービスです。 2011年6月にサービスを開始した実名グルメサービス「 Retty」は、 グルメに強いこだわりを持つ方々を中心に、 「オススメ」したいお店の情報を実名ベースでご 投稿いただく形で運営しています。 「BESTなお店が見つかる」グルメサービスとして、 20~40代の男女を中心に、 幅広い年代にご利用いただいています。
スマホ時代の実名グルメサービス「Retty」 月間利用者数4,000万人突破(2018年11月時点)
予約検索ができるようになりました
• Rettyの検索の全体像 • 各機能の話を少しずつ • 表示順の話 • 課題と今後 今日話す内容
それでは始めます
• Elasticsearchベース • 2.4.6 →7.2.0 NOW! • Kuromoji + ちょっとした辞書 •
大体1500万documentsぐらい Rettyの検索の全体像
• 検索対象 ◦ エリア ◦ ジャンル ◦ 目的 ◦ 店舗
Rettyの検索の全体像
• Rettyにおけるエリア ◦ 都道府県:東京都、神奈川県、・・・ ◦ エリア:六本木、新宿、渋谷、・・・ ◦ サブエリア:道玄坂、神泉、・・・ ◦ 駅:六本木駅、・・・
◦ ランドマーク:東京タワー、・・・ ◦ 市区町村:東京都稲城市・・・ Rettyの検索の全体像
• Rettyにおけるジャンル ◦ カテゴリー:和食、焼肉、焼き鳥、・・・ ◦ メニュー:しらす丼、たこ焼き、・・・ ◦ 食材:しらす、水菜、・・・ ◦ 飲み物:獺祭、而今、・・・
Rettyの検索の全体像
• Rettyにおける目的 ◦ ランチ、ディナー、モーニング、・・・ ◦ 食べ放題、飲み放題、・・・ ◦ デート、お一人様OK、・・・ Rettyの検索の全体像
• 検索対象データは基本デイリー更新 • 必要に応じて、document単位で準リアルタイム更新 ◦ 予約在庫状況、店舗データ修正など ◦ SQSに投下、Workerでさばく単純な仕組み Rettyの検索の全体像
• 何でも検索させようとしてかなり膨れ上がっている • 単一クラスターをやめ、複数クラスター構成を検討中 ◦ 目的に合わせた必要なindexのみで構成 ◦ SPoFになることを回避 ◦ 運用の手間はあるので検討中
Rettyの検索の全体像
• Suggest:Incremental search • Search:検索結果として店舗が並ぶあのページ 機能の話
Rettyの検索においてSuggestは もっとも重要な役割を果たしている Suggest
ユーザさんのニーズとRettyが持っているものをmappingする つまり、「ID化」できる Suggest
恵比寿 → SUB701(サブエリアの恵比寿) Suggest
なぜRettyではID化が重要なのか Suggest
恵比寿 ざぶとん うどん Suggest
恵比寿 ざぶとん うどん すべて店名でもある Suggest
Suggest
• 入力枠が2つある理由 ◦ エリアと店名を区別してID化するため ◦ エリアで探す体験に慣れているユーザさんのため Suggest
• エリアのSuggest ◦ 完全一致、前方一致、部分一致順 ◦ 正式名称、読み仮名順 ◦ 適合率と再現率の間で明け暮れる日々 Suggest
• エリアのSuggest ◦ 距離も要素としている ▪ 現在値から近いところの重さを上げる Suggest
• エリアのSuggestにおける難点 ◦ 同じ地名の場合、距離か検索ボリュームか ▪ 伏見:愛知?京都? ◦ 「ろ」で六本木優先させるのは正しいのか ▪ 芦花公園?六本木?
Suggest
• エリアのSuggestは以下の要素で毎日格闘 ◦ 検索ボリューム ◦ 距離 ◦ 入力文字列による適合率・再現率 ◦ POI検索に似ている
Suggest
• ジャンル・目的のSuggest ◦ エリアに比べたら楽 ◦ 2枠目のメリット ▪ エリア入力情報がすでに入力済み ▪ 次のアクションを待たずに提案できる
Suggest
エリアに「恵比寿」と入力 → 恵比寿なら「焼肉」「焼き鳥」がおすすめですよ! → 時間帯によっては「カフェ」「ランチ」をおすすめ → レコメンド要素の強いサジェストが可能 Suggest
• 店名のSuggest ◦ かなり大変、心折れる ◦ 別枠で何回か話しているので今回は省略。。。 ◦ ここに以前の資料とかありますよ ◦ ここにもありますよ
Suggest
ここまで15分以内だったら大成功 前半終わり
• 検索結果として店舗が並ぶあのページ • SuggestでID化が成功していたら悩むことは少ない • だめでもキーワードと完全一致するものはID化できる Search
• 問題はやっぱり店名 ◦ 地道にしっかりデータを整備していくしかない ▪ 読み仮名、英語名、区切り、記号とか。。。 ▪ 鳳と凰 Search
Search 恵比寿 ざぶとん うどん
Search 恵比寿 ざぶとん うどん
Search ざぶとん
Search ざぶとん 肉の希少部位 店名がジャンルでもあるけど そのジャンルと関係ない店舗のパターン
Search うどん
Search うどん 五反田の名店
Search うどん 五反田のカレーの名店
Search
Search 違います
Search 検索結果で 店名のうどんですか?と聞くのもあり でも一旦 店名とジャンル、どっちも検索結果に表示することに
Search では 店名一致とジャンル一致どっちを優先するのか?
Search Rettyでは今のところ店名を優先している 店名にジャンルが入ってると その専門店である確率が圧倒的に高い
Search というところで 表示順の話を少し
表示順 • 入力内容のエリア・ジャンル・目的が表示順に影響 • ユーザさんの投稿をベースに人気度が決まる • その人気度が表示順の基本となる • つまり、人気があるお店が上に表示されやすい
駅で探す場合の表示順 • 駅から店舗までの距離によるスコアリングも行う • 座標に基づく検索なので、座標の周辺がいい • でも単純に近いだけで強くなるとチェーン店が有利
駅で探す場合の表示順 • Rettyの価値は「見つかる」体験にある • チェーン店は店舗が新しく見つかる 体験にはならない
駅で探す場合の表示順 • 一定距離区間のスコアは一緒にする ◦ 0-400m(徒歩5分以内)は一緒とか • その区間内では「見つかる」体験の確率が上がる
駅で探す場合の表示順 • 新宿駅と厚木駅、江ノ島駅では距離の意味が異なる • 新宿駅:ターミナル・大型駅 • 厚木駅:地方の各駅停車駅 • 江ノ島駅:有名観光地が少し離れたところに
駅で探す場合の表示順 • 駅の特徴も生かしていく ◦ どれぐらいの距離にお店が多いか? ◦ どんなジャンルのお店が多いか? ◦ 口コミが多いお店はどんなお店か?
ジャンルで探す場合の表示順 • 一つの店舗にジャンルが一つ、とは限らない ◦ イタリアンのお店でタピオカドリンク売ってる時代 • 基本はメインジャンルの店舗が優先される
目的で探す場合の表示順 • ランチとディナーでは目的が違う • 目的によって優先するジャンルと価格帯が異なる
目的で探す場合の表示順 ランチ 時間帯、昼食、ジャンル、予算のすべてが含まれるワード
目的で探す場合の表示順 • 検証が非常に難しい • 駅ほど細かく検証出来てないので施策が展開出来てない • 課題感が多い • とはいえ、可能性がかなり高い検索軸 ◦
恵比寿でデート!
ここで一息 もうすぐ終わりますので 最後まで聞いていただけると幸いです
課題 • 表示順の検証手法が定まっていない ◦ 今は人力と効果測定で頑張っている • ログによる分析とその活用が進んでいない • メタデータの拡充を行っていきたい •
「恵比寿 x 焼き鳥デート」をサジェストしていきたい
課題 • なんだかんだ1,2名が片手間でやっている • にも関わらず、ここまで凝っているのには理由がある
Rettyで私が検索にこだわる理由
ユーザさんがグルメサービスを利用する 最大の目的への入り口
外食は ランチを軽く済ませる場合や そこらへんのカフェでコーヒーを飲む 体験だけかもしれない
だけど プロポーズを行うための飲食店探しや 人生の中で二度とない大事な旅行で 大事な人との食事なのかもしれない
サービス側の都合で提供する コンテンツではなく ユーザさんとインタラクションができる 唯一無二の機能
課題 人が足りない
募集中! Rettyの検索を一緒に作っていく こだわりまくりたいエンジニアの方 声かけてください!
ご清聴ありがとうございました