『フリマアプリ「フリル」を支えるElasticsearchを用いた全文検索』に参加した #spzcolab

『フリマアプリ「フリル」を支えるElasticsearchを用いた全文検索』に参加したのでそのメモを記しておく。

supporterzcolab.com

  • 時間 2017.9.20(木) 19:30-21:00
  • 場所 渋谷スクエアA
  • 人数 70-80名くらい

*電車の関係で少し遅れて20:00頃に到着したので情報の漏れがあると思いますがそこらへんはご了承願います。

 

 

 

 

参加したきっかけ

検索に関する勉強会やイベントのカレンダー( 検索 - 検索カレンダー )を作っているので、その情報収集をしているときに見つけたと思う。参加した理由は検索が好きだから。 

勉強会のタイムスケジュール

  • 20:00-20:15 フリルの堀井さんのお話
  • 20:15-20:35 フリルの堀井さんに質問タイム
  • 20:35-21:00 懇親会

20:00-20:15 フリルの堀井さんのお話

冒頭にも書いたとおり、私は途中から参加したので最初の30分(19:30-20:00)は聞けていない。聞けたところだけメモしておく。 

プライマリシャードとレプリカシャード

障害が起きたときも可用性が保たれる…とかそんな話だったと思う。マスターノードに関してもしゃべられていたと思う。ここらへんの話は最後のほうしか聞けていないのでもうちょっとはやく参加していれば……。

yano3さんのこの資料に近い話をされてたと思う(たぶん)。

Elasticsearch クラスタ概説 · GitHub 

Analysis

前処理をして、トークン分割して、後処理をして…のAnalyzerの話。

shibayuさんのこのブログに近い話をされてた。

blog.shibayu36.org

検索システムの精度おける2指標

適合率と再現率の2つがあって関係はトレードオフだよね。どちらをとるのかもサービスによるよね、みたいな話。wikipediaを参考文献に挙げられていたのでたぶんこのページだと思う。

情報検索 - Wikipedia 

Tokenizer

Ngram(N文字単位で文章を分割)とanalysis-kuromoji(日本語形態素解析)の2種類があるよねの話。

Kidoさんのこのブログに近い話をされてた。

medium.com

辞書をつくる

フリマアプリだとどうしてもブランド名や商品名など固有名詞が多い。それらの固有名詞は辞書をつくって管理して検索精度を高めているという話。フリルは月1にまとめて泥臭く手作業で追加しているらしい。でも効率よく辞書を作成するために自社で辞書の管理画面などを作成していた。

フリルの方が辞書に関してスライドを挙げられていたのでまさにこの話だった。スライドがかわいい: )

ファッションを扱うサービスのために、Elasticsearchのユーザー辞書とシノニム辞書を作った話 // Speaker Deck

検索クエリの改善

1つはクエリに対してスコアリングをしていて、フィールドによって重みを調整している。もう1つはmin_scoreオプションに0.3を設定して関連度の低い商品を足切りしている。(ここらへんもっと知りたい)

そして、それらを行ったあとA/Bテストを実施している。フリルではアクション率(閲覧回数÷検索品数)という指標を6%あげることができたことがあるそう。

この方のブログと近い話なのかな…?

qiita.com

Indexの更新

フリルの検索のIndexの更新はほぼリアルタイム!らしい。リアルタイムだとお客さんの要望(例えば、その時に商品が売り切れているかを確認…)には応えられるけどその分実装が複雑になる。Indexは商品モデルの更新をトリガーに非同期で更新している。なぜ同期的ではないかというと、オーバーヘッドコストが高いから。

フリルはRailsで実装されてるからこの方のブログの話が近いのかな?ここらへん詳しくないので今度調べてみようかな。

www.bokukoko.info

20:15-20:35 フリルの堀井さんに質問タイム

すごいなと思ったのが最初から最後まで質問を上げる手がずっと途切れなくて15個くらい質問続いてた…。会場の雰囲気としては永遠に質問が途切れない空気でElasticsearchに関してこんなに疑問や質問を抱いている方がたくさんいるんだなあ、と改めて思った。(私も最後に質問させていただいただきました。ありがとうございます。)

特に面白いなと思った質問2つをメモしておく。

Elasticsearchのバージョンアップの頻度はどれくらいであげていますか?

「バージョンをあげるタイミングは難しい。今は2系で運用している。来年5系に上げるかもしれない。現在検討している。」

どれくらいの頻度であげているのかはわからなかったけども。バージョンアップするの難しいのかなあ。私はバージョンアップ作業を実運用とかでやったことがないのでどこらへんが難しいのかな…と気になった。いろんな方のブログを見ていると2系使っている人が多い印象を受けるけどバージョンアップ問題これからでてくるのかな。

www.elastic.co

マスターノードが死んだことはありますか?

「マスターノードの障害もありました。全然頻度は高くないですが。でもクラスタ構成で救われました。」

クラスタ構成については勉強会の冒頭で話されていたよう(たぶん)なので、聞きたかった。クラスタ構成よくわかっていない。

www.creationline.com

 

懇親会

勉強会のとなりの部屋で立ちながらお話する形式だった。お酒はサポーターズさんが用意してくれてた。一定時間がたったらシャッフルタイム?で席替えじゃないけど、いろんな方と話せるようになってたのがへ〜と思った。堀井さんとも少しお話できてGroongaの話とかノードの話をちょっと聞けたのが良かった(ありがとうございました: ) )。 

 

まとめ

  • Elasticsearchの知見がえられた
  • フリルの検索についてもっと聞いてみたくなった!
  • 渋谷はこわい

 

1日に鶏そぼろお弁当を3つ食べた

食べた。

それはそうとして最近bingにものすごく興味がある。bingのことをもっと知りたい。

 

検索の漫画を、動画を、作ってみたい。

CodeIQ感謝祭に参加して #ドラレコ を初めてしたら思ったより楽しかった件 #codeiq39

CodeIQ感謝祭に参加しました。

codeiq.jp

 

この1行だけ追記 ドラレコではなくグラレコだった: (

 

・初めてドラレコ(勉強会に参加しながら絵と文章をとってメモをとること)したら結構ふぁぼとかもらえて嬉しかった

・こんな下手くそな絵でもいいのならドラレコ、これからもやっていこうと思う

・でもイベント5時間中、ずっと絵と文章を書いたら手がくにゃくにゃになった

・GoogleAnalyticsのまんが書いてる湊川さんやCodeIQのなかのひとと話せて知見を得た!よかった: )  

Google AdWordsの漫画かきたい

・自分は検索が好きだと伝えたら辻さんと及川さんを紹介された(お二人とも会えてはない)

・懇親会で気づく。食べ物が一瞬で消える+男性率95%

・イベント参加してよかった

 

茗荷谷・江戸川橋旅行

文京区は最高。次はどこへいこうかな

検索の勉強会第一回をひらいた

昨日、検索の勉強会第一回を開きました。

search-carp.connpass.com

9:30〜17:00で会場は湯島アカデミーというところで行いました。

無事に終えれてよかった…楽しかった…(参加者の皆さんも勉強会のツイートをRTとかしてくださって本当にありがとうございました!)

 

午前中はElasticsearchについて学び、午後は検索に関わるお話をしゃべりました。

内容は多すぎてここにはまとめきれそうにもありません。今度から勉強会のハッシュタグの設定をきちんとして随時つぶやこうと思います。検索の勉強会を行って検索のことがもっともっと好きになりました!

 

勉強会自体開くのがはじめてということもあり、勉強会の会場探しなど色々と始めて行うことがありました。以下にメモしておきます。

 

初めて行ったこと

勉強会の会場探し

勉強会をやりたいと思ったのが1週間ほど前で

・すぐに会場を予約できる所が良い

・家もしくは会社に近い所が良い

・料金がなるべく高すぎない所が良い

の3点で勉強会の会場を選択しました。

今回使用させていただいたのは湯島アカデミーの洋室(http://www.city.bunkyo.lg.jp/shisetsu/bunka/academy/yushima.html)というところで

9:00-17:30まで借りてなんと会場費が700円でした(安い!)

Twitterでyahooのlodgeを教えてくださった方がいて、調べてみるとものすごくよかったのでいずれyahooで検索の勉強会開いてみたいです…!

 

Wifi探し

会場の湯島アカデミーはWifiがありません。Wifiがないのはやっぱりつらいよなと思い当日に30分くらいかけて探してみたのですがWifi探しは難航を極めました。

・携帯ショップ3店(ドコモ・auソフトバンク)に行ってみたが1日Wifレンタルサービスをそもそも行っていない

・ymobileは当日レンタル料金1980円だが、デポジット料金に1万円かかる(高い!)

今回は結局Wifiを調達することができませんでした。しかし、今回の勉強会は参加者のみなさんのおかげもありWifiがなくても行うことが出来ました。

次回はWifiのある会場を選択しようと思います。

 

connpassで勉強会のページ作成

どのイベントサービス(connpassやATNDやmeetupなど)で募集しようかはあまり悩まずconnpassを選択しました。

connpass.com

勉強会を開くにあたって勉強会のイベントページを作成する必要があります。

勉強会のイベント画像を作成する必要があるのは実際作成するまで気が付かなかった…。

 

connpassで勉強会のグループ作成

たまたまこの記事をみて勉強会のグループを作成しました。

codezine.jp

勉強会のページとグループを紐付けるにはイベント管理→編集→グループと結びつけるで簡単に紐付けることが出来ます。

 

次回への改善点

・やっぱりWifiがほしい

・勉強会のハッシュタグの設定をする

・他の勉強会のいいところをもっと真似る

Google AdWords モバイル広告に合格した

今日はGoogle AdWords 認定資格試験のGoogle AdWords モバイル広告に合格した。
GoogleAdWords 認定資格( https://support.google.com/partners/topic/3204437 )の学習ガイドを使って勉強した。


制限時間は90分、問題数は70問、合格ラインは80%だった。
今回は84%で合格だった。時間がぎりぎりで焦った。


AdWords 認定資格は、AdWords基礎・検索広告・ディスプレイ広告・モバイル広告・動画広告・ショッピング広告の全部で6種類ある。
とりあえずの中期的な目標は、知識の確認として6種類の資格をとることを目標とする。
現在はAdWords基礎(8/30),検索(9/1),ディスプレイ広告(9/4),動画広告(9/5),モバイル広告(9/8)の5つを取得している。

ショッピング広告は一昨日不合格で、7日後に再試験を受けることができるので再度挑戦する。


オンライン広告を一通り知れてよかったしなにより結構面白かった。
次は色々な情報について学ぶ。

検索カレンダーをつくった

検索が好きなので検索カレンダーをつくった。

URL:

https://sites.google.com/view/search818/%E6%A4%9C%E7%B4%A2%E3%82%AB%E3%83%AC%E3%83%B3%E3%83%80%E3%83%BC

 

 

f:id:sakura818uuu:20170907185226p:plain

 

 

検索は間接的に関わっている分野のイベントや勉強会の中からイベントを手動で選んで登録した。
目的は、カレンダーを作ることでより情報収集する癖をつけること。
あとは検索に関わって今自分がやれること(このカレンダーとかブログ記事とか勉強会とか)を失敗してもいいからできるだけやること。

まだ作成したばかりなので気付いてないイベントや勉強会もたくさんあると思う。
1ヶ月更新で最初は4ヶ月(とりあえず今年)続くことを目標とする。