LoginSignup
2
6

More than 5 years have passed since last update.

CA.io #1 - マッチングサービスを支えるElasticsearchメモ

Posted at

event URL

Speak

Elasticsearch 6.0 is coming

@jotani elastic

  • Elatic Pioneer Program
    • バグ出ししてGuthub issueを。
  • アップグレード

    • 6系になってクラスタを1台ずつアップグレードすることでできるようになったので簡単になった。
    • Upgrade Assistant(UI & API)
  • 内部のLuceneが7にアップデート、空要素が多い項目もつかいやすくなった。ディスク容量も少なく。

  • sort条件をindexのタイミングで設定できる。index速度は落ちるが、検索速度は上げれる。

  • Replicationの速度が速くなった。

  • _typeが無くなった。

    • 6では_typeはDeprecared、ただし5系のindex使うためだけに残っているため、新規では作れない。
  • curlとかで投げる時にContent-Typeはrequest headerにつける。

  • Java High Level Rest Client (at.5.6.0)

タップル誕生がESを導入した3つの理由

Antonio Valverde @toniov - github 株式会社マッチングエージェント

  • 1. 検索の速度向上
    • MongoDB
      • ave 1,250ms
      • ES 231ms
    • 絞り込み項目が多い
      • MongoDBはこういった検索には向かなかったという結論
  • 2. より複雑な検索を実現する
    • タップルショップ
      • モテタイマー
      • ドリームマシーン
    • Multi search API
      • パフォーマンスに余裕が出たのでマルチサーチができるようになった
        • 並び順 新規60% 既存40%
    • Full text searchを実装中
  • 3. 他の検索エンジンよりタップルに合っていた
    • EoD
    • JSON-based
    • Designed for the Cloud
    • 社内である程度使われていた
    • トレンド

位置情報を用いたElasticsaerchの活用事例(CROSSME)

川田 浩史 株式会社プレイモーション

  • すれ違いの定義
    • 特定の時間内で特定の距離にいた場合
      • ユーザーごとに緯度経度・更新時間を持つ
      • 一定時間、一定期間内に異性ユーザがいるかどうかを取得
  • 逆Geocoding
    • 緯度経度から住所を検索するAPI
      • リクエスト数では非常に高価
    • 国土交通省が出してるcsvをESに突っ込む。
      • パラメータは全部stringで持つ。
  • Geo Shape
    • 指定した区間の中で特定地域にいるのを出す。(六本木ヒルズとか。)
    • 左回りで検索するか、右回りで検索するかで動きが変わる。

mimiのElasticsearch活用事例

矢崎 亮太 株式会社シーエー・モバイル

  • 好きな顔で検索できる
    • カスタムタイプでさらに絞れる
    • 男女で検索が違う
  • 検索条件
    • 必須項目
      • 年齢
      • 住み
      • 加工画像
    • optional
      • タバコとか
  • データはMySQLで検索だけESに。
  • インデックス再構築事例
    • 再定義はできないので、切り替えを考える
    • indexをstringで置いて苦労した
  • 自分に合った相手を並び替える
    • マッチングサービスにとってこれが大事!

Torteが実践したマッチしたユーザを除く3つの方法

中川 武憲 株式会社トルテ @ww24 github

  • レディーファーストの恋アプリ
  • マッチしたユーザを除く3つの方法
    • documentに持たせる
      • exclued_usersに持たせる。
        • マッチ済み、ブロックなどの都度更新
        • こいつが肥大して重くなるというデメリットもある。
    • queryに持たせる
      • シンプルで更新速度が速いが、検索が遅くなる
    • Parent-childに持たせる
      • childにユーザIDをもたせて子に自分を持たないものを検索
2
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
6