【勉強会メモ】Search Engineering Tech Talk 2019 Spring


はじめに

先日 検索技術勉強会 に参加しました。
その際個人的に印象に残った点をまとめます。

イベント概要

Search Engineering Tech Talk 2019 Spring

検索技術勉強会の目的は、「検索」/「検索システム」にまつわる技術や手法に関して共有できる場を提供することです。
検索エンジンごとの勉強会などもありますが、検索エンジンには関係なく、 「検索」というシステム、サービスを作る上で共通の解決すべき課題があります。
これらの課題をみんながどのように解決しているのかといった知識を共有できる場になればと思っています。

発表

「安心な移動」のための POI(Point-of-Interest; 地点) 検索 / 株式会社ナビタイムジャパン 小式澤 篤さん

  • POIとは、特定の場所、地点、スポット、目的地
  • ナビタイムさんのような経路探索サービスでは、POI検索(目的地検索)がキモとなる
    • ユーザの求めるPOI検索ができないと、経路探索のサービスを提供できない
      • 結果としてユーザが満足できない(目的地にたどり着けない)
  • 普通の検索だと、「適合率」や「再現率」が重要だが
    • 経路探索の場合、それだけでは思うような検索ができない
      • 重要なのは「有名度」と「距離」
      • POIによって「有名度」を優先するか「距離」を優先するかを決めていく
        • 有名度
          • "ディズニー" で検索すると誰もが知ってる "ディズニーランド" を上位にヒットさせたい
        • 距離
          • コンビニなどのチェーン店の場合、"セブンイレブン" で検索した場合は、ユーザから近い場所にあるのをヒットさせたい
      • 「有名」あるいは「距離」の判断方法
        • 有名かどうかはログを調査
          • 多くのユーザが目的地と指定したものを「有名」と判断
        • チェーン店はPOI属性としてカテゴリを用意しておく
          • カテゴリは社外からのデータ提供者から付与される、もしくは手動で付与

社内ドキュメント検索システム構築のノウハウ / Shinsuke Sugayaさん

  • Fessとはオープンソース全文検索システム
    • 内部でElasticsearchを内包している
  • 企業内検索の課題
    • クロールデータの大規模化
      • クラスタ構成にして分散検索で対応
      • あるいは更新されたファイルだけクロール(差分クロール)
    • ロール
      • ログインユーザ情報により文書の参照権限あり・なしを制御
    • SSO
      • ActiveDirectoryや認証サーバによるリダイレクト
    • 業務システムとの連携
      • JDBCドライバでDBにアクセス
    • 扱うファイルの多様化
      • POITika などを使用してテキスト化

料理動画アプリ「クラシル」の検索について / sakuraさん

  • 大変なこと
    • 辞書シノニムのメンテ
      • とにかく毎日メンテ
        • 結果、辞書にどんな単語が登録されているかを暗記するまでに(すごい・・)
      • 表記違いが多い
        • とりむねにく、鳥胸肉、鶏胸肉、鶏胸・・・
      • どこまでが類義語かを判断するのが難しい
        • えんどうまめ?さやえんどう?きぬさや?・・・
    • 検索しても結果がない
      • 一つずつ地道につぶしていった(結果1000個以上削減)
    • 検索した結果がおかしい
      • これも一つずつ地道につぶしていった
  • 時期や検索する端末によって検索クエリが変わってくる
    • 例えばAndroidだと節約系レシピの検索が多い(笑)

おわりに

  • 一言で検索と言っても、提供するサービスや扱う情報によって、工夫するポイントが色々ある
  • やはり辞書メンテはどこも苦労していそう
  • Fessが面白そうなので触ってみる