こんにちは@joytomoです。
全文検索エンジンと言えば近頃はElasticsearchが元気ですが、
いろいろあって今回はAmazon CloudSearchを使ってみました。
AWS SDKは昨年メジャーアップデートがあり、
それ以降のCloudSearch周りの日本語資料があまり見つからないので、
個人的なメモも兼ねて導入部分を紹介します。
#CloudSearchの設定
早速AWSコンソールからからCloudSearchを開いてみましょう。
他のAWSのサービスと同様に、メニューバーの「Service」から選択して開くことができます。
この画面では手動で「Domain」を作成したり、「Index Fields」の構成を行ったりできます。
DomainというのはRDBで言うところのテーブルで、Index Fieldsはテーブル定義みたいなものです。
今回はRubyのSDKからDomainを作ったりするのが目的なので、
この画面での操作方法は割愛します。
ではSDKからAWSにアクセスするため、
ACCESS_KEYとSECRET_ACCESS_KEYを発行していきましょう。
この辺りは既知の方も多いと思いますので詳細は省きますが、
Security Credentialsを開いてユーザを発行しましょう。
ユーザを作成するとACCESS_KEYとSECRET_ACCESS_KEYが発行されます。
続いて、Usersのリストから今作成したユーザを開き、ポリシーを追加します。
まずAttach Policyをクリックしましょう。
「CloudSearchFullAccess」を選択します。
これでSDKからCloudSearchにアクセスする準備は完了です。
#Rubyから操作する
まずは準備です。gemのaws-sdkをインストールします。
$gem install aws-sdk
では早速スクリプトを書いていきます。
まずはDomainを作ってみましょう。
# encoding: utf-8
require 'aws-sdk-core'
cloudsearch = Aws::CloudSearch::Client.new(
region: 'ap-northeast-1', #Tokyoリージョンです
access_key_id: 'ACCESS_KEY',
secret_access_key: 'SECRET_ACCESS_KEY'
)
resp = cloudsearch.create_domain(
domain_name: "testdomain",
)
puts resp.successful?
ACCESS_KEYとSECRET_ACCESS_KEYは先程作成して設定したものを代入してください。
ではこれを流してみます。
$ruby createCloudSearchDomain.rb
true
responseがtrueになってます。
AWSコンソールを確認すると...
ちゃんとDomainが新たにできていました。
これでひとまずRubyからAmazon CloudSearchを操作するのは出来そうです。
ひとまず今回は以上で!