2019年2月21日木曜日

お勉強してきた : 第29回Elasticsearch勉強会「検索」2019.02

行ってきたのでメモです。()は個人的な感想。

1.「GameWithで検索システムが使われるまで」: GameWith めもりーさん

https://t.co/xevsW88Ran
・着手からリリースまで3か月しかなかった
・2か月で7万コミットしてた(やばい)
・GameWithはAWSを使ってるが、辞書問題あったので AWS Elasticsearch Service は使えない。
・Sudachi使って表記ゆれ正規化してる。kuromojiとの比較はしてないが、引っ掛かりやすそうな雰囲気あり。
・負荷テストはGatlingで実施した
・インフラ構成改善が必要(マスターノード全面にいるのはよくない・・)
・ユーザ属性に応じた検索クエリ改善をやりたい、登録してるゲームに重みつけるなど(いいねb)

2.「ClassiでのAmazon Elasticsearch Serviceの活用」: 中村 真一郎さん (twitter id: s_nakamura)

https://t.co/6HUPT2Q9HI
・Amazon Elasticsearch Service を使って、テスト・問題・アンケートの検索、メッセージのやり取りの検索で使っている
・もともとMySQL(mroongaストレージエンジン)で作ってたが、階層構造のデータ検索に向いてなくてパフォーマンス悪化。Elasticsearchに。
・学校数が多くなった時にindex構成を変更。master-node, data-node 構成も工夫。
・_idの値をmessageのidにすると被ってくるので自前で採番。Rails の Elasticsearch-model gem で動かず修正するハメに。
・AWS Elasticsearch はバージョンアップの dry-run ができてハッピー。数十分で更新終わる。
・kibanaは使ってない。セキュリティ強めなので、Elasticsearchの中身を見るなら限られた端末から実行(堅実)
・チューニングしきれてないので運用ノウハウが課題

3.「C2Cサービスの為のaws Es」: @factory_ayさん

・B2B,C2C,G2Gでチューニングポイントが違う サジェスト/レコメンド スコアリング + 期間処理 など 今日は話さない(聞いてみたいけど1日コースな予感)
・ES Rally の話
・C2Cサービスの特性 ユーザーのITスキル/ドメイン知識が少ない、属性情報の信用値が低い タグ、カテゴリなどが特に
・鉄腕DASHをググる例 わかってる人:TOKIO、0円食堂、農業、島、溶鉱炉 わかってない人:アイドル、ジャニーズ・・・
・ロングテール相手にしないといけないので、B2Bと違う
・精度に関する考えがゆるい。広く深く、件数の精度を求めない。(再現率重視)
・データ量がシビア。増え続ける。スケールできる仕組みがないと死ぬ。
・ElasticsearchでAWS.ESは設定が大きく縛られるし一時的な設定変更できないしプラグイン制限あるし厳しい(「検索」で使うならそう思う)
・マスターノードとデータノードでサイジングわけるべき
・ngramは網羅性、消費量大、検索以外に使えない nounは精度高いし消費少だしタグの生成が可能
・品詞フィルタの問題点は「ひらがな」対応。漢字、カタカナ、英語はほぼ名詞/動詞/形容詞/副詞 だが、ひらがなは辞書がないと助詞/助動詞に切られて辛い(わかる)
・「ごちうさ」「けもフレ」問題
・品詞フィルタめっちゃチューニングした(ほしい)
・@とURLをつぶすフィルターは、type:pattern_replace でフィルタパターン作ればつぶせる。
・HighlightはUnified,plain,FVH 設定でメモリ消費が下手すると6割くらい違ってくる。Plain使っちゃダメ Plainが必要ならマッピング設定が誤ってるはず。index_optionsでoffsets設定するとだいぶマシにあるので一度見直してみたほうがいい。
・Index_optinos と term_vector によるメモリ消費比較。設定してないなら見てみると確実に効果出るところ(TODO:あとでみる)

4. 懇親会

発表に絡んで色々トークできたのも楽しかったー。

大量インデックスはできなくはないけど、マスター候補ノード・データノードコーディネーター専用ノード・MLノード/シャード・レプリカ考えないと破綻するケースあり(=だから、無為にインデックス大量に作る前提は控えたほうがやっぱりベター)な雰囲気。
公式リファレンス含め以下は一読しとく感じか。
https://www.elastic.co/jp/blog/how-to-configure-elasticsearch-cluster-better
https://www.elastic.co/jp/blog/elastic-stack-standard-deployment-for-logging (これはloggingですが)

個人的には↓
https://github.com/fdv/running-elasticsearch-fun-profit
みたいに、実例ベースで具体的な数字が載ってるのもイメージが湧くのでよいかなと。
https://github.com/fdv/running-elasticsearch-fun-profit/blob/master/004-cluster-design/004-cluster-design.md#designing-the-perfect-elasticsearch-cluster
perfect-elasticsearch-cluster ってまたすごいタイトルですがw

・辞書はどこも苦労しつつ試行錯誤してそう、データ投入前に自前で形態素解析→english(whitespace?) tokenizer で頑張る方式はわりとある模様。
・検索でマネージドサービス使うなら Elastic のクラウド一択。Amazon Elasticsearch Service は検索用途なら使うとドハマりしそう。マシンログとか放り込んでおくのはよい気がする。

久しぶりに勉強会行けたけど、有意義な話たくさんできて幸せでございました。

2014年6月22日日曜日

日経情報ストラテジー2014年7月号

よく事例が載っているので日経情報ストラテジーはちょこちょこ読んでいるのですが、この号はピンと来る内容が多かったので、手元に置いておくことにしました。
  1. 特集1 予測必中のデータ経営
    • ATMや結婚式場、「そんなとこまで分析ロジック入れてるんだ」という事例が載っていた。
  2. 特集2 「伝え方」 を究める
    • プレゼンテーションの仕方や、やってしまいがちなグラフの修正例が具体的に載っていて良記事。
  3. トップインタビュー
    • 個人的によかったのは、KPIだけで見ると効率が悪そう(=Wi-Fi置いたら、回転率が下がりそう)だけど、「うちはそういう人をお断りするような会社じゃないよね、そういう使い方をされるなら、その前提で考えよう」っていうトーンのくだり。色んな分析したところで、意思決定は人間がするもんだよね、という良事例かなと。

プレゼンについては、思い立ったら見直せる内容が多いのでオススメです。
参考:本誌の目次 (外部リンク)日経情報ストラテジー2014年7月号

2014年4月30日水曜日

Nexus 7 が起動できない事象

1.状況

Amazonから購入した Nexus 7(2012) について、開封後すぐ充電ケーブルを挿したものの、起動できず。また、そもそも充電状態を示す電池アイコンすら画面に表示されず、チラっと砂嵐的に画面がチラつく程度。(なお、諸事情で2台購入したうちの1台がこの状態で、もう1台は充電ケーブルを挿さずとも起動できた)

2.対応

ネットの示唆に従い、1時間程度充電ケーブルを挿したままで放置。その後、Nexus 7 本体がほのかに温かくなってきて、その後電源ボタンを長押しすることで、無事起動に至った。

3.まとめ

Nexus 7(2012) を購入後、まずは同梱の充電ケーブルで数時間充電してから使用する。
うまく起動できない場合は、"nexus 7 起動しない" でググってネットの声に従うこと。

ちなみに、起動した後はネット・動画等、普段使いにはなんの問題もない、良デバイスです。

2014年4月29日火曜日

Bloggerに独自ドメインを設定する

ドメインを取得して、Bloggerで指定されたCNAMEをDNSに設定する、というただそれだけなのだが、CNAMEを確認する手順がわかりづらかったのでメモ。
一旦エラーを出して確認するのが正規の手順らしい。エラーになった後で表示されるCNAMEレコード情報を使えば、手順通り設定可。
...
4.エラーと 2 つの CNAME が下に表示されます。
...
参考:ブログでカスタム ドメイン名を使用するには - Blogger ヘルプ

2013年2月23日土曜日

プジョーのある生活



2年くらい、青森とか大阪とかの移動もあったので2万km以上たっぷり乗り回しました。
まだまだ元気に走ってくれそうな感じですが、子供も増えて車買い替えのため、先週末でお別れでございました。