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
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
1
220
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
310
Taming you application's environments
salaboy
0
180
OCI Vault 概要
oracle4engineer
PRO
0
9.7k
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
940
サイバーセキュリティと認知バイアス:対策の隙を埋める心理学的アプローチ
shumei_ito
0
380
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
1
180
マルチプロダクトな開発組織で 「開発生産性」に向き合うために試みたこと / Improving Multi-Product Dev Productivity
sugamasao
1
300
スクラムチームを立ち上げる〜チーム開発で得られたもの・得られなかったもの〜
ohnoeight
2
350
Engineer Career Talk
lycorp_recruit_jp
0
160
複雑なState管理からの脱却
sansantech
PRO
1
140
【Startup CTO of the Year 2024 / Audience Award】アセンド取締役CTO 丹羽健
niwatakeru
0
990
Featured
See All Featured
Being A Developer After 40
akosma
86
590k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
KATA
mclloyd
29
14k
Gamification - CAS2011
davidbonilla
80
5k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
89
A Tale of Four Properties
chriscoyier
156
23k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Side Projects
sachag
452
42k
Speed Design
sergeychernyshev
24
610
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 ▪ もっと詳しく知りたい人は、ペンギン本こと「検索システムー実務者のための 開発改善ガイドブック」を読んでください。