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 9/16
AWS技術知見
2022年9月16日
目次

はじめに

何かサービスを作る際、検索機能を盛り込むケースは非常に多いと思います。
昨今では当たり前となったこの検索機能ですが、これががなかなか厄介な代物だったりします。
例えばRDBを使っている場合、中間一致や後方一致を可能にすると、インデックスが使えずにパフォーマンスや負荷に影響が出てしまったりと一筋縄にはいきません。

そこで、Apache SolrやElasticsearchといった全文検索の導入が有力な選択肢となります。
AWSでは全文検索サービスとして以下の2種がリリースされています。

  • AWS CloudSearch
  • AWS OpenSearch Service(旧AWS Elasticsearch Service)

どちらも似たような機能のサービスですが、前者はカスタマイズ性が低いぶん手軽に利用することができます。
逆に後者は、カスタマイズ性と自由度の高い検索機能の実装が可能です。
ということで今回は、入門に最適なAWS CloudSearchの設定を行い、実際に使っていきたいと思います。

構築

それでは早速環境を作りましょう。
前提として検索対象とするデータが必要です。今回は青空文庫のCSVデータをお借りします。

作家別作品一覧:http://www.aozora.gr.jp/index_pages/person_all.html
utf8形式のCSVファイルをダウンロードしたら、少し手を加える必要があります。

まずヘッダ行を適当な英語にしておきます。
日本語のヘッダ名だと解析時に列名が正しく解釈されないようでした。

もう1点、日付の形式を修正する必要があります。
若干雑ですが、以下のように一括置換しておきます。
(\d+)-(\d+)-(\d+) → \1-\2-\3T00:00:00Z

データの準備ができたら、AWSのコンソール上でCloudSearchへアクセスし、「Create New Search Domain」を選択します。
作成画面が開くので適当なドメイン名を入力します。

次に検索インデックスを設定するためにサンプルをアップロードします。
今回は手元にデータとなるファイルがあるので、一番上を選択し、用意しておいたCSVファイルを指定します。

少し待つと解析結果として設定内容が表示されますので、データ型や言語を適切に修正します。
今回はお試しということもあり、ざっくり以下のように修正しています。

・author_name(著者名)を text に変更
・status_start_date(状態の開始日)を date に変更
・その他、言語が English の項目を Japanese に変更

最後にアクセス制御を設定します。
本来は必要最低限にすべきですが、後からでも変更できるので、一旦は自由にアクセスできるようにしてしまいます。
上から2番目のリンクをクリックすると、自動的にそのようなポリシーが設定されます。

あとは内容を確認して完了です。
作成に10分前後かかるようなので、しばらく置いておきましょう。

上の画像のようにステータスがActiveになったら、いよいよデータの投入です。
「Upload Documents」を選択します。
※Activeになっても直後はデータのアップロードボタンが非活性だったりしたので、余裕を持って待つのが吉です

サンプルのアップロードと同じように、一番上を選択し、ダウンロードしたファイルを指定します。

内容を確認し、問題がなければ完了です。
完了画面でエラーが出ている場合はメッセージを確認してください。

8500件ほどのデータが投入できたようです。
反映されるのを少し待ってから、実際に検索してみます。

左側のメニューから「Run a Test Search」を選択すると、検索を試すことができます。
適当な条件で検索してみましょう。

274件該当と、無事検索ができてそうです。
検索結果内の太文字の部分が条件にマッチした部分のようで、スコアの高かった順に表示されていますね。
右側にも色々なフィルタが用意されていたりと、この時点でだいぶリッチな検索を行えそうです。

おわりに

手探りながら、CloudSearchの使い方を簡単に解説させて頂きました。
もう少し使いこなせれば、実装の幅も大きく広がりそうなので、引き続き使っていきたいですね。

次回はRuby等のアプリケーション側から実際に今回構築した全文検索を使ってみたいと思います。

正社員希望の方はこちら
業務委託希望の方はこちら
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.

目次