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
〇〇みたいな検索作ってと言われたときに考えること / thinking before dev...
Search
ryokato
July 29, 2022
Technology
6
3.7k
〇〇みたいな検索作ってと言われたときに考えること / thinking before developing search system like that one
ryokato
July 29, 2022
Tweet
Share
More Decks by ryokato
See All by ryokato
The first step self made full text search
ryook
8
6.7k
Other Decks in Technology
See All in Technology
オプトインカメラ:UWB測位を応用したオプトイン型のカメラ計測
matthewlujp
0
200
Yahoo! ズバトクにおけるフロントエンド開発
lycorptech_jp
PRO
0
100
Opcodeを読んでいたら何故かphp-srcを読んでいた話
murashotaro
0
320
Oracle Cloudの生成AIサービスって実際どこまで使えるの? エンジニア目線で試してみた
minorun365
PRO
4
300
マイクロサービスにおける容易なトランザクション管理に向けて
scalar
0
190
12 Days of OpenAIから読み解く、生成AI 2025年のトレンド
shunsukeono_am
0
130
[Ruby] Develop a Morse Code Learning Gem & Beep from Strings
oguressive
1
190
Oracle Cloud Infrastructure:2024年12月度サービス・アップデート
oracle4engineer
PRO
1
270
DUSt3R, MASt3R, MASt3R-SfM にみる3D基盤モデル
spatial_ai_network
2
270
いまからでも遅くないコンテナ座学
nomu
0
130
5分でわかるDuckDB
chanyou0311
10
3.3k
Microsoft Azure全冠になってみた ~アレを使い倒した者が試験を制す!?~/Obtained all Microsoft Azure certifications Those who use "that" to the full will win the exam! ?
yuj1osm
2
120
Featured
See All Featured
Gamification - CAS2011
davidbonilla
80
5.1k
We Have a Design System, Now What?
morganepeng
51
7.3k
Mobile First: as difficult as doing things right
swwweet
222
9k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Designing for humans not robots
tammielis
250
25k
Building Adaptive Systems
keathley
38
2.3k
Music & Morning Musume
bryan
46
6.2k
Transcript
© VisasQ Inc. All Rights Reserved. 〇〇みたいな検索作って と言われたときに考えること
© VisasQ Inc. / Confidential 自己紹介 ▪ 加藤遼 ▪ 株式会社ビザスク
◦ 検索チーム ▪ 最近好きなビールのスタイル ◦ スムージーサワーエール(高いけど
© VisasQ Inc. / Confidential こういうことよくありますね 〇〇みたい検 索作ってよ 検索よくしたい よね〜
とりあえず 〇〇参考にし てみるか〜
© VisasQ Inc. / Confidential 他サービスを参考にするのはいいことだけど... ▪ 安易に採用するとうまくいかない可能性があります。 ▪ 今回は、「なぜうまくいかないかもしれないの?」の説明をします
© VisasQ Inc. / Confidential 大前提にあるべき大事なこと ▪ 検索機能はサービスの一部 ▪ 機能やロジック・精度以前に、ユーザーにどういう体験を提供するかが重要
▪ ユーザーによりよい体験を提供するために、「よい検索機能」や「よい検索精 度」というものが必要という順番
© VisasQ Inc. / Confidential 検索システム全体像 ▪ 検索機能は単純に見えて、考える要素は意外と多い ▪ 最低限の検索機能を実現するだけでも以下の要素が必要
検索エンジン 検索ロジック 検索機能/UI データ ユーザー
© VisasQ Inc. / Confidential 検索機能を考えるときの視点 検索エンジン 検索ロジック 検索UI データ
ユーザー ▪ 検索機能の考えるときに青枠部分だけに意識が向きすぎる ◦ 不幸な結果になる ▪ オレンジ枠から考えることが重要 ◦ 青枠部分はオレンジ枠の内容次第で変わる
© VisasQ Inc. / Confidential ユーザーってどんな人?? ▪ その検索機能を使うユーザーがどんな人か理解する必要がある ▪ 検索観点だと
◦ 何を検索したいのか ◦ どういう観点で検索したいのか ◦ 検索する対象について詳しいのか ◦ 検索することになれているのか ◦ 何を求めて検索するのか ◦ どういう動機なのか
© VisasQ Inc. / Confidential 検索と行動は一つじゃない ▪ 「検索する人は何かを探したい」という認識は雑 ▪ 検索という行為は、動機やそれに基づく検索行動は複数ある
▪ 例えば、ランチのお店を探すときにどういう動機でどういう検索するかを考え てください
© VisasQ Inc. / Confidential ランチのお店探す時の動機の一例 ▪ 「今日お昼何たべよ」 ◦ 探したいものを認識できていない状態
▪ 「暑いからさっぱりしたやつ...」 ◦ 方針はある程度見えているが具体性はない状態 ▪ 「会社から近い麺にしよ」 ◦ 具体的な条件が明確で、条件を満たすものを探す状態 ▪ 「〇〇に行こう。場所どこだっけ?」 ◦ 既知の特定の情報を探す状態 探したいものが明確 探したいものが不明確
© VisasQ Inc. / Confidential 誰がどういう動機・目的で何を探している(ニーズ)によって 「検索する」という行為も様々
© VisasQ Inc. / Confidential ニーズや動機による違い例 ▪ よくみるこの機能も誰でも使えるわけではない 検索 探したいものが不明確な人
探したいものに詳しくない人 何で検索した らいいの... 必要な情報 見つけた!! 探したいものが明確な人 探したいものに詳しい人
© VisasQ Inc. / Confidential ニーズや動機による違い例 ▪ もしこういう結果になったら発狂したくなりますね? 近くのサイゼリヤを探したい時 渋谷のイタリアンを探したい時
サイゼリヤ デートにおすすめ!渋谷イタリアン10選 家族連れもOK 気楽にいけるイタリアン ・ ・ ・ 渋谷 イタリアン サイゼリヤ渋谷東急ハンズ前店 サイゼリヤ恵比寿駅東口店 ・ ・ ・
© VisasQ Inc. / Confidential どんな機能が必要か、どんなロジックがいいのかは ユーザーのニーズによって異なる 他サービスの機能がそのまま自サービスの ユーザーニーズに一致するとはいえない
© VisasQ Inc. / Confidential うちのサービスのユーザーのニーズもバッチリ理解した! その上で参考になる機能を見つけた! よしこれ実装しよ!
© VisasQ Inc. / Confidential そうは問屋が卸さないのが検索システム
© VisasQ Inc. / Confidential 検索(システム)はそもそも... ▪ DBに存在する情報しか検索できない ▪ 完璧な機能(UI)とロジックでも、ないものを探すことはできない
© VisasQ Inc. / Confidential こういうのあるあるですね いや、そういうデータう ちにはなくて... この条件で検索した い!!!
その項目ほとんど入力 されてないんで... この項目で検索しても 全然ヒットしないんだ けど!!!!
© VisasQ Inc. / Confidential データ品質は検索体験に大きく影響する ▪ データの欠損 ◦ 一部入力されてない、入力されていても短くて十分な情報量がない、等
◦ 検索してもうまくヒットしない... ▪ データの信頼性が低い ◦ 入力内容が間違っている、形式がバラバラ、古くて更新されていない、等 ◦ 期待通りにヒットしない。間違った内容がヒットする。 ▪ 各社データの品質をあげるために、データを買ったり機械学習的なこと頑張っ たり、人手で整備する専任部隊を作ったり、様々工夫している
© VisasQ Inc. / Confidential その機能はそもそも... ▪ 他サービスの検索機能が実現できているのは、持っているデータに依存してい る可能性がある こういうのもカテゴリデータであったり、検索ログだったりといったものがあるからできる
© VisasQ Inc. / Confidential データの準備方法はサービスによって異なる ▪ データをどうやって準備されているかは様々 ◦ ユーザーが入力する、(信頼できる)特定の人が作成する、整備されたデータベース
を購入する、など ◦ 独自でデータを作っていたり ▪ サービスや準備方法が異なれば、データの特性も違う ◦ 表記ゆれが多いとか、入力が少ないとか、テキストより数値が多いとか ▪ 同じ事業ドメイン、似たようなサービス、似たようユーザーニーズであって も、持っているデータの違いから、同じ検索機能を提供できるとは限らない
© VisasQ Inc. / Confidential データの特性と品質を理解しておくのはとても大事
© VisasQ Inc. / Confidential 検索機能を考えるときは ▪ ユーザーに提供すべき体験、解くべき課題を明確にする ▪ 前提となるユーザーニーズやデータについて理解する
▪ 前提をもとにどういう手段が適切なのかを考える ◦ この段階で他サービスを参考にするとよい 検索機能はあくまでも手段なので目的をまちがえないように
© VisasQ Inc. / Confidential まとめ ▪ 検索機能やロジックは、ニーズやデータ特性によって何が適切かは異なる ▪ いい感じの検索機能やロジックを作るよりも、解決したい問題は何か、提供し
たい価値は何かという目的を明確にして最適な手段を選ぶことが大事 ◦ 実際は今回の話以外にも技術的難易度やコスト、ROI等色々なことを考慮する必要 がある
© VisasQ Inc. / Confidential Appendix ▪ もっと詳しく知りたい人は、ペンギン本こと「検索システムー実務者のための 開発改善ガイドブック」を読んでください。