祝!日本語対応 Amazon CloudSearch をさわってみた。
どうも!先日、Amazon から CloudSearch の日本語化対応が発表されました。これは触らなければ!ということで、ざっと触った感じをメモします。今日は、あんまりまとまっていませんが参考になれば。
Amazon Web Services ブログ: 【AWS発表】Amazon CloudSearch 大幅アップデート - 1ヶ月100ドル以下でより良い検索が可能に!日本語にも対応!
とりあえすサクッと動かしてみるには。
ドメイン作って検索までは、以下のブログを参考にしました。なお、特に記載がありませんでしたが、アップロードするCSVファイルのエンコードはUTF-8を使用します。ShiftJISなどでは化けました。
CloudSearchが多言語対応してTokyoリージョンに!Suggesterを試してみる | shinodogg.com
ちなみに、サンプルのデータですが、私はwikipediaから作りましたが、以下のコマンドラインツールのダウンロードサイトに、一緒にサンプルデータが置いてあります。
http://aws.amazon.com/developertools/Amazon-CloudSearch
感想
- シンプルで分かりやすい、すぐに使える!インデキシングや検索もさくっとできます。
- いわゆるインデキシングの処理はかなり速い。単に検索する用途だけにドキュメントを追加するだけの場合、かなり速く反映される印象でした。
- ただし、スキーマの変更を行う、ドメインを追加する、サジェスターを追加する、などを行うと反映にかなり時間がかかります。その状態でも検索できるのは素晴らしい!
- 下にも記載しましたが、ファセットの表現はあまりまだバリエーションがなさそうです。
- Webのクローラなどのデータを取り込む部分はありません。実システムに入れるには manifoldCF や Nutch など何かしらモジュールが必要です。が、CSVやJSONなどに変換すればいいのでとても簡単です。
- 同義語、ステミング、ストップワードで精度のチューニングが可能です。そこまで対応しているとは!
データアップロードの制限。
コンソールからのアップロードの最大サイズは5MB。それ以上の場合は、コマンドラインツールを使用してアップロードする必要があります。S3 に置いた場合でも同様でした。S3から取り込む場合はサイズ制限は撤廃してほしいなー。うーん、微妙(笑)。CloudSearch へのドキュメントのフィードは SDF という json フォーマットに変換した形で行われています。推測ですが、コンソールを使った場合は、コンソール側で変換処理を行っているので、制限があるのではないかと思われます。
CloudSearch CommandLine Tools
プロキシ環境下で使う場合は、以下の設定が必要です。基本はEC2と同じですが、若干変数名が EC2 → CS など違いがあり、cmd ファイルの中身をチェックする必要がありました。なお、まだドキュメントには記載がありませんでした。
- proxy の設定について。「CS_JVM_ARGS」に設定。環境変数以外は、EC2と同じです。以下、サンプル。
export CS_JVM_ARGS="-Dhttp.proxyHost=my.proxy.com -Dhttp.proxyPort=8080-Dhttps.proxyHost=my.proxy.com -Dhttps.proxyPort=8080"
- CloudSearch は全てのリージョンについて HTTPS 接続が前提になっているので、両方書いておくのが楽でいいでしょう。以下のリンク先の表のプロトコルの列を参照。 http://docs.aws.amazon.com/general/latest/gr/rande.html#cloudsearch_region
気になるところ。
範囲Facetには対応していない? 4/9追記 ドキュメントをひと通り読んでみたところ対応していないようです。→Amazon CloudSearch インプレッション - よしだのブログ
Fuzzy : Low の状態のサジェスト。かなり Fuzzy(笑)辞書のチューニングはできなさそうなので、Fuzzy はオフで使うしかなさそうですね。