目次
この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
Search Engineering Tech Talk 2019 Spring レポート
Search Engineering Tech Talk とは
検索技術勉強会の目的は、「検索」/「検索システム」にまつわる技術や手法に関して共有できる場を提供すること
登壇者
- ナビタイム 小式澤 篤 :「安心な移動」のためのPOI(Point-of-Interest; 地点)検索
- 菅谷 信介 :社内ドキュメント検索システム構築のノウハウ
- @818uuu :料理動画アプリ「クラシル」の検索について
「安心な移動」のためのPOI(Point-of-Interest; 地点)検索
- POIとは
- point of interest
- 移動の目的地となる場所
- 緯度軽度や名前や住所などの情報
- POIの特徴
- 短文か単語が多い
- 文章が少ない
- 要素が多い
- 経路探索におけるPOI検索の立ち位置
- 目的地検索ができなければ、そのあとのナビゲーションができない
- 安全な移動のためのPOI検索
- ほとんどの人が上位5位を選択している
- キーワードとの一致率が大事
- 問題点1
- いろんな県のものが出てくる
- ホテル椿山での検索でホテル椿山東京以外のホテル
- ディズニーでの検索で東京ディズニーランド以外のもの
- スカイツリーも同様
- いろんな県のものが出てくる
- 対策1
- 人気なもの(有名度)が高いものを優先して上位に表示 →大方解決
- 問題点2
- チェーン店などでの検索で、人気の店舗が上位されてしまう
- 「コンビニ」での検索で、「セブンイレブン 新宿駅」が表示されるなど
- 対策2
- 距離が近いものも優先して上位に表示 →大方解決
- まとめ
- 並び順優先順位
- 有名度
- 適合率
- 距離
- 再現率
社内ドキュメント検索システム構築のノウハウ
- 企業内検索とは
- 企業内の情報を検索する(ファイルサーバーやウェブウェイトなど)
- fessとは
- オープンソースの全文検索システム
- elasticsearchを使っている
- 企業内検索を構築する際のよくある課題
- クロール対象が大規模
- セキュア
- 業務システムとの連携
- ファイルが様々
- 大規模化について
- ドキュメント数は数千万くらい
- クラスタにして分散検索
- クロールする際の工夫
- 更新ファイルリストを生成し、更新されたもののみをクロールする(全件だと1日のクロールで終わらないため)
- セキュアについて
- 認証状態により検索結果を出し分ける
- ad連携
- ログイン
- クロール時に権限情報を付与する
- 閲覧することができる権限をクロール時に取得するため
- シングルサインオン
- 検索システムにも自動でログインする
- リバースプロキシがた
- windows統合認証
- openid connectなど
- 認証状態により検索結果を出し分ける
- 業務システムとの連携
- データはデータベースにあるため、sqlを検索サーバーに入れる
- ファイルの種類について
- ツールを使って文字列の抽出
- ms office po
- pdfbox
- tika など
- ツールを使って文字列の抽出
料理動画アプリ「クラシル」の検索について
- クラシルについて
- 検索対象:動画
- ドキュメント?数:約2万5千本
- 同義語対策について
- 日々検索キーワードをチェックし手動で登録
- ある程度効果はある
- 同義かどうかが難しい場合がある
- 「インゲン豆」「さやいんげん」など
- 日々検索キーワードをチェックし手動で登録
- 0件ヒット対策
- 0件のヒットとなっているキーワードのレシピを日々チェック
- 新生ワードを早期発見するために日々リサーチ(twitterなど)
- 運用中気になったこと
- 食材クエリとメニュークエリで離脱率が異なる
- androidとiosでクエリが異なる
- テレビの影響は大きい
- 検索数が少ないキーワードへの対処優先度
- KPI
- 最初は離脱率
- その次、検索経由のCV
- ただし検索した後、買い物に出かけるなど、タイムラグがあるため純粋なCVを測ることが難しい(検討中)