【AWS】CloudSearchで全文検索 ドキュメントデータ入力編

はじめに

お世話になります、hosochinです

↑ の続きです
CloudSearchにデータを入力したいと思います

ドキュメントデータ入力

検索対象のドキュメントデータをインポートします
json or xml形式で入力可能ですが、今回はjsonデータで入力していきます
以下のようなサンプルデータを作成します

  • test.json
[
  {
    "type": "add",
    "id": "1",
    "fields": {
      "first_name": "貞治",
      "last_name": "王",
      "pr": "一本足打法の人。世界のホームラン王。"
    }
  },
  {
    "type": "add",
    "id": "2",
    "fields": {
      "first_name": "一朗",
      "last_name": "鈴木",
      "pr": "日米でヒット打ちまくった人。演技力も高い。"
    }
  },
  {
    "type": "add",
    "id": "3",
    "fields": {
      "first_name": "有",
      "last_name": "ダルビッシュ",
      "pr": "副業でメジャーリーガーしてるYouTuber。"
    }
  },
  {
    "type": "add",
    "id": "4",
    "fields": {
      "first_name": "翔平",
      "last_name": "大谷",
      "pr": "日米で160キロ投げまくってホームラン打ちまくってる人。昔はみちのくのダルビッシュなんて呼ばれたりもしてた。"
    }
  }
]

コンソールからでもインポートできるんですがめっちゃ遅い & ちょくちょく謎のエラーに見舞われます
aws cliからインポートするのがおすすめです
endpoint-urlはダッシュボードのSearch Endpointを指定します

aws cloudsearchdomain upload-documents --endpoint-url https://search-search-test-misbuybhc7wm62ox6m3cvjq2s4.ap-northeast-1.cloudsearch.amazonaws.com --content-type application/json --documents test.json
{
    "status": "success",
    "adds": 4,
    "deletes": 0
}

データぶっ込めました👍
次に実際に検索してみます

-- 鈴木一郎のデータが取得できる
aws cloudsearchdomain search --endpoint-url https://search-search-test-misbuybhc7wm62ox6m3cvjq2s4.ap-northeast-1.cloudsearch.amazonaws.com --search-query "鈴木"

-- ダルビッシュ有と大谷翔平のデータが取得できる
aws cloudsearchdomain search --endpoint-url https://search-search-test-misbuybhc7wm62ox6m3cvjq2s4.ap-northeast-1.cloudsearch.amazonaws.com --search-query "ダルビッシュ"

-- last_nameに対して検索、ダルビッシュ有のデータのみが取得できる
aws cloudsearchdomain search --endpoint-url https://search-search-test-misbuybhc7wm62ox6m3cvjq2s4.ap-northeast-1.cloudsearch.amazonaws.com --query-parser structured --search-query "last_name:'ダルビッシュ'"

検索オプションについてはこちらを参照

次回はJavaアプリケーションからCloudSearchにアクセスして検索してみたいと思います!

技術AWS,CloudSearch

Posted by hosochin