AWS Black Belt Techシリーズ Amazon CloudSearch

8,568 views

Published on

AWS Black Belt Tech Webinar 2014
(旧マイスターシリーズ)

Amazon CloudSearch

Published in: Technology

AWS Black Belt Techシリーズ Amazon CloudSearch

  1. 1. Amazon CloudSearch AWS  Black  Belt  Tech  Webinar  2014  (旧マイスターシリーズ) アマゾンデータサービスジャパン株式会社 ソリューションアーキテクト  篠原  英治
  2. 2. Agenda •  Amazon  CloudSearchについて •  2014年年3⽉月  CloudSearch  Launch •  CloudSearchへのデータ投⼊入 •  Japanese  Text  Processing •  Ranking  and  Relevance(順位と適合性) •  旧バージョン(2011-‐‑‒02-‐‑‒01)からの移⾏行行 •  まとめ •  Q&A
  3. 3. Agenda •  Amazon  CloudSearchについて •  2014年年3⽉月  CloudSearch  Launch •  CloudSearchへのデータ投⼊入 •  Japanese  Text  Processing •  Ranking  and  Relevance(順位と適合性) •  旧バージョン(2011-‐‑‒02-‐‑‒01)からの移⾏行行 •  まとめ •  Q&A
  4. 4. Amazon  CloudSearchとは •  フルマネージドなクラウド型検索索エンジン •  検索索ソリューションが容易易に導⼊入可能 •  2014年年5⽉月現在  33  の⾔言語をサポート •  豊富な検索索機能 –  ハイライト表⽰示 –  サジェスト(AutoComplete) –  地理理空間検索索
  5. 5. CloudSearchの利利⽤用イメージ •  ドメインの作成
  6. 6. CloudSearchの利利⽤用イメージ •  データ投⼊入(東京メトロ南北北線の駅名&路路線)
  7. 7. CloudSearchの利利⽤用イメージ •  フィールドの定義
  8. 8. CloudSearchの利利⽤用イメージ •  “JR⼭山⼿手線”
  9. 9. CloudSearchの利利⽤用イメージ •  “⿇麻布”  or  “⼀一丁⽬目”
  10. 10. Search  Engine •  RDBMS –  特定(specific)なものを探すのに向いている –  例例)  100万レコードから特定の1件のデータを取得 •  Search  Engine –  任意(arbitrary)のものを探すのに向いている –  例例)  フリーワードでの検索索、カテゴリでの検索索 Amazon RDS Amazon CloudSearch
  11. 11. Search  Engine •  ⼤大量量のドキュメントから特定の⽂文字列列を検索索 –  grepのように最初から1つ1つ探すのは⾮非常に時間がかかる –  素早く引き当てられるようにあらかじめインデックスを作っておく
  12. 12. -‐‑‒  映画のタイトル -‐‑‒  監督/出演者 -‐‑‒  映画の紹介⽂文 -‐‑‒  映画館の情報 Amazon RDS 検索索ドキュメントの構造
  13. 13. DynamoDB -‐‑‒  ユーザービヘイビア情報 検索索ドキュメントの構造
  14. 14. Amazon S3 -‐‑‒  画像/動画 -‐‑‒  静的コンテンツ 検索索ドキュメントの構造
  15. 15. インデックスするドキュメントの構造 Field Value id tt0371746 title Iron  Man description When  wealthy  industrialist  Tony  Stark  is  forced  to  build  an  armored  suit   after  a  life-‐‑‒threatening  incident,  he  ultimately  decides  to  use  its  technology   to  fight  against  evil. director John  Favreau actors Robert  Downey  Jr.,  Gwyneth  Paltrow,  Terrence  Howard  ... rating 7.9 release_̲date 2008-‐‑‒05-‐‑‒02T00:00:00Z 検索したい情報は、DynamoDBやRDSに保持すると共にCloudSearchにも入れる 検索する必要がない情報(例: S3の画像のパス)はCloudSearchには入れない
  16. 16. 転置インデックス •  どのキーワードがどのドキュメントに存在するか あらかじめ索索引を作成しておく Term Documents (Posting List) Iron The Man in the Iron Mask Iron Man The Iron Giant ... Man Rain Man The Man in the Moon The Third Man Iron Man ...
  17. 17. Automatic  Scaling •  ドキュメントのサイズ/数および検索索リクエスト数 によって⾃自動的にスケール
  18. 18. Agenda •  Amazon  CloudSearchについて •  2014年年3⽉月  CloudSearch  Launch •  CloudSearchへのデータ投⼊入 •  Japanese  Text  Processing •  Ranking  and  Relevance(順位と適合性) •  旧バージョン(2011-‐‑‒02-‐‑‒01)からの移⾏行行 •  まとめ •  Q&A
  19. 19. 2014年年3⽉月  CloudSearch  Launch •  多言語対応(日本語含む33言語) •  各言語ごとのテキスト解析 •  Algorithmic Stemming •  新しいデータタイプ •  地理空間検索 •  サジェスト(AutoComplete)検索 •  ハイライト表示 •  Term boosting •  強化された範囲検索 •  検索フィルタ •  インスタンスタイプのコントロール •  Multi-AZ •  IAM Integration •  リージョン拡大(Tokyo, Sydney, Sao Paulo)
  20. 20. 2014年年3⽉月  CloudSearch  Launch Arabic,   Armenian,   Basque,   Bulgarian,   Catalan,   Simplified  Chinese,   Traditional  Chinese,   Czech,   Danish,   Dutch, English,   Finnish,   French,   Galician,   German,   Greek,   Hindi,   Hungarian,   Indonesian,   Irish,   Italian,   Japanese, Korean,   Latvian,   Norwegian,   Persian,   Portuguese,   Romanian,   Russian,   Spanish,   Swedish,   Thai,   Turkish •  Support  for  33  languages
  21. 21. 2014年年3⽉月  CloudSearch  Launch •  Per-‐‑‒Field  Language  Control ※  2014年年3⽉月Launchにおける“Multiple  Languages”は⾼高度度な⾔言語判別         (Language  Detection)機能ではなくシンプルなトークナイズ
  22. 22. 2014年年3⽉月  CloudSearch  Launch •  Highlighting /search&q=iron+man&highlight.plot={"format":"text"}! "hit": [{! "id": "tt1228705",! "fields": {! "title": "Iron Man 2”! },! "highlights": {! "plot": "Tony Stark has declared himself ! *Iron* *Man* and installed world...! } },... !
  23. 23. 2014年年3⽉月  CloudSearch  Launch •  Suggestions /suggest?q=ir&suggester=title_sug "suggest": {"query": "iro", "found": 5,! "suggestions": [! {“suggestion”: “Iron Man”,…"id": "tt0371746"},! {"suggestion": "Iron Man 2”,…"id”:"tt1228705"},! ...!
  24. 24. 2014年年3⽉月  CloudSearch  Launch •  IAM  Integration –  Access  Policy:  Search(検索索)とDocument(データ更更新) {! "Version":"2012-10-17",! "Statement": [! { "Effect": "Allow",
 "Action": ["cloudsearch:*"],
 "Resource": "arn:aws:cloudsearch:us-east-1:111122223333:domain/imdb-movies" },! { "Effect": "Deny",! "Action": ["cloudsearch:DeleteDomain"],! "Resource": "arn:aws:cloudsearch:us-east-1:111122223333:domain/imdb-movies" }! ]! }!
  25. 25. 2014年年3⽉月  CloudSearch  Launch •  Geo-‐‑‒Spatial  support –  Latitude-‐‑‒Longitude  data  types •  範囲/バウンディングボックス検索索 –  Distance  sort •  球⾯面上の距離離(haversin) •  near  me  等
  26. 26. 2014年年3⽉月  CloudSearch  Launch •  Enhanced  Availability –  Multi  Availability-‐‑‒Zone
  27. 27. 2014年年3⽉月  CloudSearch  Launch •  Enhanced  Availability –  あらかじめInstance  SizeとScaling  Optionsが指定可能 •  ⼤大量量データをインデクシングする場合 •  ⼤大量量の検索索リクエストを受付ける場合
  28. 28. 2014年年3⽉月  CloudSearch  Launch "When a Man Loves a Woman"! "Wonder Woman"! "The Woman in Black”! ...! "The Lawnmower Man"! "Dead Man"! "Repo Man”! ...! •  Term  Boosting –  (or 'man' 'woman')&q.parser=structured! –  (or (term boost=5 'man’) 'woman')&q.parser=structured!
  29. 29. Agenda •  Amazon  CloudSearchについて •  2014年年3⽉月  CloudSearch  Launch •  CloudSearchへのデータ投⼊入 •  Japanese  Text  Processing •  Ranking  and  Relevance(順位と適合性) •  旧バージョン(2011-‐‑‒02-‐‑‒01)からの移⾏行行 •  まとめ •  Q&A
  30. 30. CloudSearchへのデータ投⼊入 •  データの形式 Double Date Signed  Integer Text Literal
  31. 31. CloudSearchへのデータ投⼊入 •  Field  Types Type 説明 date yyyy-mm-ddT00:00:00Zの形式。timestamp含む date-array 複数のdate double double-precision 64-bit 浮動小数点数 double-array 複数のdouble int 64-bit 符号付き整数 int-array 複数のint latlon latitude(緯度)longitude(経度)ペア. literal 完全一致用文字列 literal-array 複数のliteral text 言語指定可能な全文検索用フィールド text-array 複数のtext
  32. 32. CloudSearchへのデータ投⼊入 Processing Script Queuing Batching Amazon  EC2 Amazon  EC2 Amazon   CloudSearch Amazon  SQS Source System Search  Data  Format  (SDF)
  33. 33. CloudSearchへのデータ投⼊入 •  SDF(Search  Data  Format)への⾃自動変換機能 –  Comma  Separated  Value  (.csv) –  Adobe  Portable  Document  Format  (.pdf) –  HTML  (.htm,  .html) –  Microsoft  Excel  (.xls,  .xlsx) –  Microsoft  PowerPoint  (.ppt,  .pptx) –  Microsoft  Word  (.doc,  .docx) –  Text  Documents  (.txt)
  34. 34. CloudSearchへのデータ投⼊入 •  ローカル、S3、DynamoDBからUpload可能
  35. 35. CloudSearchへのデータ投⼊入(コンソールCSV) 生成したSDFフォーマットのファイルを ダウンロードすることも出来る 1 2 3
  36. 36. CloudSearchへのデータ投⼊入(HTTP) •  エンドポイント –  http(s)://<  document  service  endpoint  >/2013-‐‑‒01-‐‑‒01/documents/batch •  ヘッダ –  Accept:  application/json   –  Content-‐‑‒Type:  application/json   –  Host:  doc-‐‑‒yamanote-‐‑‒xxx.ap-‐‑‒northeast-‐‑‒1.cloudsearch.amazonaws.com •  コンテンツ {“type”:“add”,“id”:“yamanote_̲4”,“fields”:{“id”:“003”,“name”:“渋⾕谷"}},   {“type”:“add”,“id”:“yamanote_̲5”,“fields”:{“id”:“004”,“name”:“原宿"}}, {"type":"delete","id":"yamanote_̲20"}
  37. 37. CloudSearchへのデータ投⼊入(Reference  Architecture)
  38. 38. Agenda •  Amazon  CloudSearchについて •  2014年年3⽉月  CloudSearch  Launch •  CloudSearchへのデータ投⼊入 •  Japanese  Text  Processing •  Ranking  and  Relevance(順位と適合性) •  旧バージョン(2011-‐‑‒02-‐‑‒01)からの移⾏行行 •  まとめ •  Q&A
  39. 39. Japanese  Text  Processing •  形態素解析(Morphological  Analysis) –  ⾃自然⾔言語で書かれた⽂文を形態素の列列に分割し、それぞれの品詞を 判別する作業  (http://ja.wikipedia.org/wiki/形態素解析) •  英語のようにスペースで区切切られている⾔言語と異異なり、 •  ⽇日本語は⽇日本語⽤用の構⽂文解析が必要 –  例例)  彼はエンジニアだ •  彼(名詞-‐‑‒代名詞)/は(助詞-‐‑‒係助詞)/エンジニア(名詞-‐‑‒⼀一般)/だ(助動詞) •  “エンジニア”を抽出してインデックスを作ることにより、 •  ”エンジニア”で検索索された際に、⾼高速なレスポンスの実現が可能
  40. 40. Japanese  Text  Processing •  正規化(Normalize) –  エンジニア(半⾓角カナ)で検索索された場合も、エンジニア(全⾓角カナ)で検 索索された場合も、どちらの場合もヒットして欲しい –  CloudSearchでサポートされている機能 –  更更に突っ込んだ正規化に関しては要件に応じて下記のような実装 を⾃自分で⾏行行う事が望ましい場合もある •  NFD(Canonical  Decomposition):  正規化形式D •  NFC(Canonical  Composition):  正規化形式C •  NFKD(Compatibility  Decomposition):  正規化形式KD •  NFKC(Compatibility  Composition):  正規化形式KC
  41. 41. Japanese  Text  Processing •  Stemming –  飲んだ  →  飲ん(動詞-‐‑‒⾃自⽴立立,  baseForm:飲む)/だ(助動詞)  →  飲む –  ステミング辞書への追加  (API/SDKでも追加可能)
  42. 42. Japanese  Text  Processing •  Stopword  Removal –  「の」、「は」、「か」といった意味の無い⾔言葉葉を除く –  ステミング同様Stopword辞書への追加  (API/SDKでも追加可能)
  43. 43. Japanese  Text  Processing •  Synonym  Addition –  Synonym  =  同義語 •  「ベニス」「ベネチア」「ヴェネチア」 •  「昨年年」「去年年」 –  同じ意味なので検索索された場合にヒットさせる –  Stopwords,  Stemming同様に追加可能
  44. 44. Japanese  Text  Processing •  Synonym  Addition –  シノニム辞書への追加  (API/SDKでも追加可能) •  Alias –  pupilで検索索してstudentのドキュメントがヒット –  studentで検索索してpupilのドキュメントはヒットしない •  Group –  1st,  first,  oneどれで検索索しても –  1st,  first,  oneの全てのドキュメントがヒット
  45. 45. Agenda •  Amazon  CloudSearchについて •  2014年年3⽉月  CloudSearch  Launch •  CloudSearchへのデータ投⼊入 •  Japanese  Text  Processing •  Ranking  and  Relevance(順位と適合性) •  旧バージョン(2011-‐‑‒02-‐‑‒01)からの移⾏行行 •  まとめ •  Q&A
  46. 46. Ranking  and  Relevance(順位と適合性) •  ドキュメントにスコアを付けてソートする –  TF-‐‑‒IDF  –  uniqueness  and  presence •  TF:  term  frequency –  ドキュメント内でそのキーワードがどれだけ出てくるか •  IDF:  inverse  document  frequency –  ドメイン内の全てのドキュメントの中で、 –  そのキーワードがどれだけユニークか
  47. 47. Ranking  and  Relevance(順位と適合性) •  スコア(_̲score)によるソート
  48. 48. Ranking  and  Relevance(順位と適合性) •  A/Bテスト –  マネージメントコンソールで⽐比較しながら調整
  49. 49. Ranking  and  Relevance(順位と適合性) •  ソート –  重み付けによってスコア(_̲score)を調整 •  ドキュメントの価値(ユーザーによるレーティング  等) •  ユーザー⾏行行動(どれだけ⾒見見られたか?  等) •  フレッシュネス(新しいドキュメントの評価を上げる) –  スコア以外のソートも可能 •  text/literalのフィールドで辞書順 •  int/doubleのフィールドで数字順 •  dateのフィールドで⽇日付順
  50. 50. Ranking  and  Relevance(順位と適合性) •  Expressions Arithmetic + - * / % Bitwise | & ^ ~ << >> >>> Boolean && || ! ?: Comparison < <= == >= > Mathematical functions abs ceil exp floor ln log2 log10 logn max min pow sqrt pow Trigonometric functions acos acosh asin asinh atan atan2 atanh cos cosh sin sinh tanh tan haversin distance function haversin(38.958687,-77.343149,latitude,longitude)
  51. 51. Ranking  and  Relevance(順位と適合性) •  Query  Parser –  Simple  Query  Parser •  ベーシックなマッチング –  Structured  Query  Parser •  複雑なboolean検索索やウェイト付け –  Lucene  Query  Parser •  CloudSearchではパフォーマンスは保証されない •  あいまい検索索,  正規表現  等 –  Dismax  Query  Parser •  Lucene  Query  Parserを補うためにSolrで開発されたクエリパーサー •  単語の出現位置の考慮  等
  52. 52. Agenda •  Amazon  CloudSearchについて •  2014年年3⽉月  CloudSearch  Launch •  CloudSearchへのデータ投⼊入 •  Japanese  Text  Processing •  Ranking  and  Relevance(順位と適合性) •  旧バージョン(2011-‐‑‒02-‐‑‒01)からの移⾏行行 •  まとめ •  Q&A
  53. 53. 旧バージョン(2011-‐‑‒02-‐‑‒01)からの移⾏行行 •  新バージョンは2013-‐‑‒01-‐‑‒01 –  Tokyoリージョン •  作成できるドメインは新バージョンのみ –  新規のお客様 •  どのリージョンであっても⾃自動的に新バージョンでのドメイン作成 –  旧バージョンのドメインをお持ちのお客様 •  旧バージョンのCloudSearch提供リージョンでのみ、旧バージョン のドメインを作成可能 –  新バージョンのご利利⽤用を推奨
  54. 54. 旧バージョン(2011-‐‑‒02-‐‑‒01)からの移⾏行行 •  新バージョンは2013-‐‑‒01-‐‑‒01 –  SDK、APIも変更更 •  例例)  AWS  SDK  for  Ruby –  AWS  CLI  は  新バージョンのみサポート •  AWS  Command  Line  Interface  1.3.6  からCloudSearchが利利⽤用可能 •  https://aws.amazon.com/releasenotes/CLI/8906204440930658
  55. 55. 旧バージョン(2011-‐‑‒02-‐‑‒01)からの移⾏行行 •  移⾏行行に関するドキュメント(現状、英語のみ) –  http://docs.aws.amazon.com/cloudsearch/latest/ developerguide/migrating.html
  56. 56. 旧バージョン(2011-‐‑‒02-‐‑‒01)からの移⾏行行 •  注意点:  Metricsの取得 –  旧バージョンでは以下のMetricsが取得可能であった •  Total  Searches –  検索索されたキーワード上位を表⽰示 •  Searches  with  No  Results –  検索索されたキーワードのうち0件ヒットだったものを表⽰示 –  シノニムに追加することで検索索の精度度向上が⾒見見込める –  新バージョンでは上記のMetricsが表⽰示されない •  より良良い分析結果の提供を計画中であるが、 •  現状はご⾃自⾝身で集計を⾏行行っていただくことを推奨
  57. 57. Agenda •  Amazon  CloudSearchについて •  2014年年3⽉月  CloudSearch  Launch •  CloudSearchへのデータ投⼊入 •  Japanese  Text  Processing •  Ranking  and  Relevance(順位と適合性) •  旧バージョン(2011-‐‑‒02-‐‑‒01)からの移⾏行行 •  まとめ •  Q&A
  58. 58. Amazon  CloudSearch •  他のAWSマネージドサービス(S3,DynamoDB等)と同様の利利点 •  簡単なセットアップ/オペレーション(コンソール,  SDK,  CLI) •  キャパシティに関する設計/実装が不不要(Auto  Scaling) •  低リスクで素早く導⼊入可能(Multi  AZ) •  2014年年3⽉月のLaunchで様々な機能追加 –  ⽇日本のお客様にとっては  ⽇日本語サポート/Tokyoリージョン •  従量量課⾦金金制(無料料枠あり)  /  良良いコスト効率率率 –  Simple  Monthly  Calculator(http://calculator.s3.amazonaws.com/)で概算 を⾒見見積り可能
  59. 59. Amazon  CloudSearch •  ⽇日本のお客様の利利⽤用も増加中 –  http://aws.amazon.com/jp/cloudsearch/testimonials/ •  Go  Global  in  minutes!
  60. 60. 参考資料料 •  Amazon  CloudSearch  Developer  Guide –  http://docs.aws.amazon.com/cloudsearch/latest/ developerguide/what-‐‑‒is-‐‑‒cloudsearch.html •  Amazon  CloudSearch  FAQ –  https://aws.amazon.com/jp/cloudsearch/faqs/ •  Amazon  CloudSearch  価格 –  https://aws.amazon.com/jp/cloudsearch/pricing/

×