Skip to content

Instantly share code, notes, and snippets.

@satoshihirose
Last active August 29, 2015 14:07
Show Gist options
  • Save satoshihirose/4455510cd941ece48859 to your computer and use it in GitHub Desktop.
Save satoshihirose/4455510cd941ece48859 to your computer and use it in GitHub Desktop.

A9共催! AWSプロダクトシリーズ | よくわかる Amazon CloudSearch @アマゾン目黒オフィス

##Keynote – Rob Walters (CloudSearch GM)

  • A9という社名はAlgorithmの頭文字とそれが9文字だということに掛けている
  • Amazonの全リテールサイトの検索を担っている
  • Visual Searchとかもやってるよ
  • Amazon CloudSearch
  • Full-managed
  • 日本のuserはSMARTInSight, vuzz, chartwork等
  • 日本のMarketの10%を担っている
  • 「本日、日本語のカスタム辞書サポートがローンチされました」
  • 事例
  • THE TIMES: 300年に渡る新聞データをアーカイブし検索可能に
  • SmugMug: 巨大写真DB。タグ検索。
  • Amazon Smile(自動チャリティサービス): 1000万もの商品
  • Goodreads:9億件の書籍検索

##Search Tech Deep Dive – 篠原英治(Amazon Data Services Japan SA)

  • 転置インデックス、tf-idf、複数のクエリパーサをサポート
  • 日本語の困難を解消(形態素解析、Stemming、片方向と両方向のSynonym、Stopword Removal)
  • Automatic Scaling: ドキュメントの数、リクエストの数によって自動的にスケール
  • 型: Literal, Double, Singned Integer, Text, Date
  • RankingとRelevance(順位と適合性): tf-idf
  • 5/29: パーティショニングの事前設定が可能に(初期投入のインデキシングの高速化)
  • 8/14: IAMの連携強化
  • 本日のローンチ:
  • CloudTrail対応。S3にログが記録される。
  • Bigram Indexing
  • Customizing Japanese Tokenization("ググる"とかそういうの)
  • 今月か来月にも期待できるupdateあるかも?

##CloudSearch use-case 15min x 3 ###田中佑樹 氏(ChatWork Engineer)

  • ChatWorkご紹介。46万ユーザー。海外展開してるよ。USAに6人。ルクセンブルクにも。
  • Mroonga単体構成->Mroonga分割構成->elasticsearch検討->CloudSearch!
  • メッセージ量は現在4億件。三ヶ月で1億件溜まる。
  • indexバッチの仕組み。SQSでメッセージ履歴をDynamoへ? その後にIndexへ差分バッチ。
  • elasticsearchは良くも悪くもOSS
  • DynamoDbLocal的なものはない
  • 検証用にm1.small
  • CloudWatchも対応していない
  • 日本語のサポートがある!!!!
  • aws-sdk-php
  • Guzzleの知識が必須。
  • サポートにsdkについて聞いても良い。
  • POSTメソッドでsearchが対応していない。パラメタが多いと生API叩かざるをえない。
  • ほぼメンテナンスフリー。検索速度は問題無い。
  • 「◯◯が検索されない」って問い合わせが多い。今日のカスタマイズ辞書で対応できるね!
  • まとめ
  • 開発しにくさを上回る運用のしやすさ
  • 日本語サポート
  • 速度に問題はない

###加賀谷祐平 氏(nanapi Engineer) yuhei_kagaya

  • サーバーサイド。CakePHP。Vim好き
  • nanapi。月間2500万UU
  • 2014年7月にオンプレからAWSへ。S3, Redis MySQL, CloudSearch
  • Senna->mroonga->CloudSearch
  • 規模は10万ドキュメント。m1.smallで。
  • データの作り方。検索用、ソート用、表示用を一つのドキュメントにまとめている。
  • 検索用:タイトル、本文、カテゴリ名の階層構造(1万9千カテゴリある)
  • ソート用:PV、執筆日時
  • 表示用:アウトライン、著者情報、画像URL
  • MySQLに更新があったら検索データテーブルへ書き込み。callbackでCloudSearchへ。テーブルのは今でも管理画面で使っている。
  • まとめ
  • デフォルトのままでいい感じに検索できる
  • 簡単に日本語全文検索システム
  • とにかく楽

###伊東弘満 氏(schoo Infrastructure Unit Manager)

  • schooは2011/10-。会員数は10万人。最大4000人の講義実績あり。
  • サービスイン時には検索昨日なかった。。。
  • 2014/8に検索機能リリース。それまで個別ページへのアクセスはほとんどはGoogleの検索から
  • 当初はElasticsearchをEC2で自前で運用するつもりだった。
  • 「Amazon CTO Night行ったけどCloudSearchかなり良さそうだったよ」「(elasticsearchで実装始めてるんだけど…)」
  • 検索対象項目多いから絞った。
  • まずindex設計。次にAPI設計。
  • Redis
  • 「直近の検索ワード」100件リスト。
  • 「ランキング」SortedSet。ExpireTime 1 month
  • SQSつかってindexing。画像変換とか。
  • 教科書通りの使い方をしてます

##How to improve search - 兼山元太 氏(Cookpad Search Engineer)

  • 弊社では使っていないよ!Solorだよ!
  • Recipは1.7M、ユニークブラウザ44M
  • 全体のうち82%のレシピが検索さてれ観られている
  • appからcacheへの検索クエリavg:72Mbps、max:180Mbpsもある。。。
  • search monitor
  • クエリ毎の時間、曜日推移(検索数グラフ)
  • 検索PV/UU, CTR
  • blank resultも表示
  • 改善改善!!!
  • muninでレスポンスタイム日々確認
  • 改善改善!!!
  • UserとStaffからも問い合わせ出来るようになってる
  • WebページにリンクがあってGoogleSpreadSheetに飛んでフィードバック出来るようになってる。今まで150意見くらい。
  • 新しい料理が流行り始めた時に教えてくれたりする
  • Log Analysis
  • Click log is vital
  • ♡Treasure Data Redshift
  • HIT@3/HIT, NDCG, WTF@10とかの指標
  • session編。成功を定義して、キーワード毎に集計。
  • avg time, avg success rate, query pattern etc...
  • カスタム辞書を使って改善(わらび餅!=わらび)「UU数少ないでしょう…」<ー簡単に変更できる仕組みが必要
  • ヒエラルキカルシノニム。非対称シノニム。CloudSearchでも出来るよ!
  • Reindex whle index everyday(!!!!!!)インデクシングを早くしておく。
  • Query modification。前処理のスペースを作る。フィールドを限定したり。結構良い。
  • Cloudsearh羨ましい。ランキングをサイド・バイ・サイドで観られるツール
  • Exploit users log。関連検索!
  • まとめ
  • 問題を発見するツールを作る
  • 改善する!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment