Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Yusuke Naito
PDF, PPTX
39,200 views
おでかけスポット検索のむずかしさ - Holidayを支える検索技術
2016.01.23 Cookpad TechConf 2016 http://techconf.cookpad.com/
Engineering
◦
Read more
26
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 38
2
/ 38
3
/ 38
4
/ 38
5
/ 38
6
/ 38
7
/ 38
8
/ 38
9
/ 38
10
/ 38
11
/ 38
12
/ 38
13
/ 38
14
/ 38
15
/ 38
16
/ 38
17
/ 38
18
/ 38
19
/ 38
20
/ 38
21
/ 38
22
/ 38
23
/ 38
24
/ 38
25
/ 38
26
/ 38
27
/ 38
28
/ 38
29
/ 38
30
/ 38
31
/ 38
32
/ 38
33
/ 38
34
/ 38
35
/ 38
36
/ 38
37
/ 38
38
/ 38
More Related Content
PDF
Holiday のデザインと開発 - ユーザーに価値を届けるためのプロトタイピングから実装まで
by
Keisuke Tada
PDF
リードデザイナーってどんな人か考えてみた
by
辰徳 井上
PDF
ナレッジを共有する文化をつくるために
by
Recruit Lifestyle Co., Ltd.
PDF
アイデア創発ファシリテータ_プログラム
by
Rikie Ishii
PDF
知情意で学ぶ匠Method超入門
by
Hagimoto Junzo
PDF
好感度をアップさせるための表情トレーニング【男性編】 先生:内田 佳代
by
schoowebcampus
PDF
機能追加を行う際に考慮したい3つのポイント
by
Miwa Kuramitsu
PDF
JavaScript Unit Test Why? What? How?
by
Teppei Sato
Holiday のデザインと開発 - ユーザーに価値を届けるためのプロトタイピングから実装まで
by
Keisuke Tada
リードデザイナーってどんな人か考えてみた
by
辰徳 井上
ナレッジを共有する文化をつくるために
by
Recruit Lifestyle Co., Ltd.
アイデア創発ファシリテータ_プログラム
by
Rikie Ishii
知情意で学ぶ匠Method超入門
by
Hagimoto Junzo
好感度をアップさせるための表情トレーニング【男性編】 先生:内田 佳代
by
schoowebcampus
機能追加を行う際に考慮したい3つのポイント
by
Miwa Kuramitsu
JavaScript Unit Test Why? What? How?
by
Teppei Sato
Viewers also liked
PDF
開発した新技術から、新しい価値を作るためのクックパッド検索チームのプロダクト開発手法
by
Hiroto Igarashi
PDF
What matters to technology driven business
by
Ohno Shin'ichi
PDF
Cookpad Techconf@kimura 2016/01/23
by
Mari Kimura
PDF
R&D at Foodtech company - #CookpadTechConf 2016
by
Aki Ariga
PDF
モバイルアプリのインタラクションプロトタイピング - 高速に仮説・実行・検証サイクルを回すために
by
Keisuke Tada
PDF
Cookpad TechConf 2016 - DWHに必要なこと
by
Minero Aoki
開発した新技術から、新しい価値を作るためのクックパッド検索チームのプロダクト開発手法
by
Hiroto Igarashi
What matters to technology driven business
by
Ohno Shin'ichi
Cookpad Techconf@kimura 2016/01/23
by
Mari Kimura
R&D at Foodtech company - #CookpadTechConf 2016
by
Aki Ariga
モバイルアプリのインタラクションプロトタイピング - 高速に仮説・実行・検証サイクルを回すために
by
Keisuke Tada
Cookpad TechConf 2016 - DWHに必要なこと
by
Minero Aoki
おでかけスポット検索のむずかしさ - Holidayを支える検索技術
1.
おでかけスポット検索 のむずかしさ - Holidayを支える検索技術 Cookpad TechConf
2016
2.
自己紹介 • 内藤 雄介(ないとうゆうすけ) •
おでかけプラン作成・共有 サービス「Holiday」の開発 • サーバサイドの開発を担当
4.
いつもの休日のおでかけを 楽しくすることで 人生を豊かにする
5.
Holidayでの検索
6.
Holidayでの検索 ! フリーワード
7.
Holidayでの検索 ! どこで だれとx 中目黒 デート
8.
Holidayでの検索 どこで だれとx いつ ! 中目黒
冬
9.
Holidayでの検索 どこで だれとx いつ なにを ! 中目黒
散歩
10.
Holidayでの検索 ! どこで
11.
これまでは... => 全文検索
12.
全文検索だけでは うまくいかなかった
13.
「中目黒、中目黒にない」問題
14.
ユーザが考える「中目黒」 • 目黒川沿いのおしゃれなカフェ・雑貨点が 集まっているエリア • 中目黒駅前の商店街エリア
15.
ユーザが考える「中目黒」
16.
住所としての「中目黒」
17.
2つの「中目黒」の差
18.
「駅周辺を探せない」問題
19.
駅名で検索するということは • 「駅から『徒歩圏内』で『なるべく近く』 で遊べるところないかな」と考えていそう • 住所文字列から距離は測れない =>
結果順に反映できない
20.
課題 • スポット名・住所からの全文検索では... • 一般認識とは違ったエリアを探してしまう •
駅からの距離を結果に反映できない
21.
「全文検索」x「地理検索」
22.
Elasticsearch
23.
これまで 中目黒 カフェ! 中目黒
カフェ
24.
改善後 カフェ 中目黒 " { 位置情報
} ! 中目黒 カフェ AND or must
25.
Elasticsearchでの地理検索 • Geo Distance
Filter • Geo Polygon Filter • Geo Bounding Box Filter ※Elasticsearch2系ではQueryとして実装されてます
26.
Geo Distance Filter •
中心点からの距離で絞り 込む • 駅周辺のスポットを探す などのケースに適してい る
27.
Geo Polygon Filter •
多角形で範囲を指定する • 複雑なエリアの場合に使 用する
28.
Geo Bounding Box
Filter • 地理検索オプションの中 で、最も高速に動作 • 正確さが求められないな らこれを使うと○
29.
地名を判別するために • 形態素解析の強化 • mecab-ipadic-NEologd
の導入 • 新語・流行語 • 全国駅名一覧 • 同義語管理
30.
地名の判別 - 辞書の強化 { "tokens"
: [ { "token" : "中", "start_offset" : 0, "end_offset" : 1, "type" : "word", "position" : 1 }, { "token" : "中目黒", "start_offset" : 0, "end_offset" : 3, "type" : "word", "position" : 1 }, { "token" : "目黒", "start_offset" : 1, "end_offset" : 3, "type" : "word", "position" : 2 }, { "token" : "駅", "start_offset" : 3, "end_offset" : 4, "type" : "word", "position" : 3 } ] } { "tokens" : [ { "token" : "中", "start_offset" : 0, "end_offset" : 1, "type" : "word", "position" : 1 }, { "token" : "中目黒駅", "start_offset" : 0, "end_offset" : 4, "type" : "word", "position" : 1 }, { "token" : "目黒駅", "start_offset" : 1, "end_offset" : 4, "type" : "word", "position" : 2 } ] } with NEologd $ curl -XGET 'localhost:9200/index/_analyze' -d '中目黒駅' kuromoji(Default)
31.
地名の判別 - 辞書の強化 kuromoji(Default) { "tokens"
: [ { "token" : "奥", "start_offset" : 0, "end_offset" : 1, "type" : "word", "position" : 1 }, { "token" : "渋谷", "start_offset" : 1, "end_offset" : 3, "type" : "word", "position" : 2 } ] } { "tokens" : [ { "token" : "奥", "start_offset" : 0, "end_offset" : 1, "type" : "word", "position" : 1 }, { "token" : "奥渋谷", "start_offset" : 0, "end_offset" : 3, "type" : "word", "position" : 1 }, { "token" : "渋谷", "start_offset" : 1, "end_offset" : 3, "type" : "word", "position" : 2 } ] } with NEologd $ curl -XGET 'localhost:9200/index/_analyze' -d '奥渋谷'
32.
結果 認識通りのエリアが探せる! ! 中目黒 デート
33.
結果 駅周辺から距離順に探せる! ! 目黒駅 デート
34.
結果 住所じゃなくても探せる! ! 奥渋谷 デート
35.
まとめ • 「どこで」を探すには全文検索では不十分 • 「地理検索」を組み合わせることで、 よりよい検索体験を作れる •
Elasticsearchは地理検索するにも便利!
36.
ご静聴ありがとうございました
37.
おまけ
38.
「駅名」での検索の場合 • 駅周辺のスポットを検索 • 駅からの距離に応じてスコアを調整 •
Elasticsearchでは • Function Score Query を使う • 詳しくは http://techlife.cookpad.com/ entry/2015/03/12/080000
Download