MENU
  • サービス
  • AWS導入支援
  • AWS運用代行
  • WordPress
    • WordPress高速化
    • WordPress脆弱性対策
  • 導入事例
  • 良くあるご質問
  • AWS技術知見
  • お問い合わせ
AWSの導入・クラウド運用を総合支援【CapsuleCloud】
  • サービス
  • AWS導入支援
  • AWS運用代行
  • WordPress
    • WordPress高速化
    • WordPress脆弱性対策
  • 導入事例
  • 良くあるご質問
  • AWS技術知見
  • お問い合わせ
AWSの導入・クラウド運用を総合支援【CapsuleCloud】
  • サービス
  • AWS導入支援
  • AWS運用代行
  • WordPress
    • WordPress高速化
    • WordPress脆弱性対策
  • 導入事例
  • 良くあるご質問
  • AWS技術知見
  • お問い合わせ
  1. ホーム
  2. AWS技術知見
  3. Amazon CloudSearch 検索機能を実現 実装編

Amazon CloudSearch 検索機能を実現 実装編

2022 8/17
AWS技術知見
2022年8月17日
目次

はじめに

前回は、Amazon CloudSearchの環境構築を行いました。
今回は実際にアプリケーション側から利用してみたいと思います。

検索キーワードを入力し、結果を受け取って表示することを目指します。
言語はRubyを使用します。

実装

それでは早速実装していきましょう。

1. Endpoint の確認

検索に使用するエンドポイントを確認しましょう。
エンドポイントはCloudSearchのダッシュボード上に記載されています。

2. Gem のインストール

AWS公式から提供されているSDKがありますので、そちらを利用します。
今回はRubyですが、各言語で提供されています。別の言語を使用する場合は言語にあったSDKをご利用ください。
https://aws.amazon.com/jp/tools/#sdk

Rubyの場合はGemでインストールします。

[code]
gem intall aws-sdk
[/code]

Ruby on Railsで使用する場合は、Gemfileに以下を追加してbundle installしましょう。

[code]
gem 'aws-sdk', '~> 2'
[/code]

3. コーディング

準備が整ったので、コードを書きましょう。

cloudsearch_sample.rb

[code language="ruby"]
require 'aws-sdk'

# 検索条件となるキーワードを入力
puts 'Input search keyword:'
keyword = gets

# クライアントの生成(<your endpoint>には、確認したエンドポイントを入れてください)
client = Aws::CloudSearchDomain::Client.new(endpoint: "http://<your endpoint>")

size = 100
start = 0
loop do
result = client.search(query: keyword, start: start, size: size)
puts "該当件数: #{result.hits.found}件" if start == 0

# 結果を表示
result.hits.hit.each do |hit|
puts "「#{hit.fields['book_name'].first}」 #{hit.fields['author_name'].first}著"
end

# 結果件数を超えたら終了
break if result.hits.found <= start + size

start += size
end
[/code]

全件取得するために、100件ずつループで取得して結果を表示するようにしています。

動かしてみる

以上で検索ができるようになったはずです。
早速動かしてみましょう。

前段で作成した Ruby ファイルを実行すると、検索キーワードを求められます。
適当な条件を入れて検索してみると…。

問題なく検索できていそうですね。
太宰で検索して一番に坂口安吾の著書が返ってくるのは気になるところではありますが、恐らく作品名にマッチしたものが優先されているのでしょう。
このあたりは状況に応じてCloudSearch側でカスタマイズが必要になる部分かと思います。

今回の例では作品名と著者しか表示していませんが、他にも様々な情報を結果として返すことが可能です。
ぜひご色々と試してみてください。

おわりに

本来、検索周りはリッチであればあるほど、時間をかけて作りこまないといけない部分です。
しかし、CloudSearchとSDKを利用することで、少ないコード量で簡単に実装できてしまいました。
このように高度な技術を手軽に利用できるというのがAWSの大きなメリットの一つです。

AWS技術知見
aws CloudSearch

関連記事

  • aws-route53
    AWS機能を網羅してみよう3.3 Route53編「実践」DNSフェイルオーバー
  • AWSのクラウドセキュリティ「責任共有モデル」とは?
  • ansible
    AWSのためのAnsible入門
  • aws-s3
    Amazon S3でGlacierを活用したコスト削減法
  • aws-route53
    AWS機能を網羅してみよう3.2 Route53編「実践」
  • aws-s3
    Amazon S3で署名付きURLを使ったアクセス制御
  • aws-route53
    AWS機能を網羅してみよう3.1 Route53編「概要」
  • aws-waf
    AWS WAFでSQLインジェクションと特定URLをブロック
検索
clouddx003-low.pdf - 1.8MB
資料ダウンロードはこちら
人気記事
  • terraform
    Terraformと変数(variable)のお話
    Terraform
  • aws-s3
    Amazon S3で署名付きURLを使ったアクセス制御
    AWS技術知見
  • AWS導入支援
    amazonクラウド、AWSとは?何ができるかデメリット含めわかりやすく説明
    AWS導入支援
  • WordPress高速化!6つの簡単な方法で重さを改善
    WordPress
  • ansible
    AWSのためのAnsible入門
    AWS技術知見
  • WordPress脆弱性の原因とやっておくべき7つの対策
    WordPress
  • 【実例20選】AWS導入企業、活用事例をご紹介
    AWS導入支援
新着記事
  • AWS運用代行企業5選!企業選びのポイントを解説
    AWS運用代行
  • AWS運用代行のサービス内容やメリットについて
    AWS運用代行
  • 10分でスタート!AWSの利用開始までを解説
    AWS導入支援
  • WordPress脆弱性の原因とやっておくべき7つの対策
    WordPress
  • WordPress高速化!6つの簡単な方法で重さを改善
    WordPress
カテゴリー
  • AWS導入支援
  • AWS技術知見
    • Rancher
    • Terraform
  • AWS運用代行
  • WordPress
タグ一覧
AI (3) aws (25) aws-cli (3) CloudFormation (1) CloudSearch (3) DeepLearning (1) DNS (2) Docker (4) EBS最適化オプション (1) ec2 (7) ElasticBeanstalk (1) Geo Routing (1) Gitlab (1) HA (1) infrastructure-as-code (1) keypair (1) load-balancer (1) nginx (2) OpenAM (3) Rancher (8) Rekognition (2) Route53 (3) s3 (2) secrets (1) security-group (1) Terraform (6) terragrunt (2) tfvars (1) variable (1) vault (1) VPC (1) wordpress (3) アプリケーション (1) オンプレミス (2) クラウド (2) サインアップ (1) シングルサインオン (3) セキュリティ (1) セキュリティグループ (1) ネットワーク設計 (1) 人工知能 (2) 初心者 (1) 本番運用 (1) 画像認識 (3) 起動 (1)
アーカイブ
  • 2022年9月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2017年7月
  • 2017年6月
AWSエンジニア積極採用!
採用情報
フリーランスの求人情報!
テックブレイン

スーパーソフトウエアはAWSパートナーネットワーク(APN)のコンサルティングパートナーです。

スーパーソフトウエアはRancherパートナーネットワークのコンサルティングパートナーです。

logo

カプセルクラウドはAWSクラウドのマネージドサービスです。AWSを安心かつ迅速に導入し、負荷分散・セキュリティ・DevOps・コスト削減など、クラウドサービスのメリットを活かした豊富なベストプラクティスをご提供いたします。

Contents

  • サービス
  • 導入支援
  • WordPress
  • 導入事例
  • ブログ
  • Q&A
  • お問い合せ
  • 資料ダウンロード

お問い合わせ

株式会社スーパーソフトウエア
東京 03-6721-7105
大阪 06-4707-6001
info-capsulecloud@tokyo.supersoftware.co.jp

  • プライバシーポリシー
  • 免責事項
  • 契約約款
  • 特商法に基づく表記
  • 会社情報
  • サイトマップ

© Supersoftware 2017. All rights reserved.

目次