web-dev-qa-db-ja.com

Amazon s3バケットを全文検索するにはどうすればよいですか?

S3にバケットがあり、そこに大量のテキストファイルがあります。

テキストファイル内のテキストを検索したい。生データのみが含まれます。また、各テキストファイルには異なる名前が付いています。

この例では、バケット名があります。

abc/myfolder/abac.txt

xyx/myfolder1/axc.txt

&上記のテキストファイルで「I am human」のようなテキストを検索したい。

これを達成する方法は?それも可能ですか?

26
Hitu Bansal

これを行う唯一の方法は、ソースとしてS3を使用できる CloudSearch を使用することです。高速検索を使用して機能し、インデックスを構築します。これは非常にうまく機能しますが、価格モデルを徹底的にチェックして、コストがかかりすぎないことを確認してください。

代替案はジャックが言ったとおりです-そうでなければ、ファイルをS3からEC2に転送し、そこで検索アプリケーションを構築する必要があります。

16
user1832464

2015年10月1日 AmazonはElastic Searchを使用して別の検索サービスを提供しているため、クラウド検索とほぼ同じように、 Amazon S3バケットからデータをストリーミング できます。

これはラムダ関数と連携して、S3バケットに送信される新しいデータがこのラムダへのイベント通知をトリガーし、ESインデックスを更新することを確認します。

すべてのステップは Amazon doc で詳しく説明されており、JavaおよびJavaScriptの例が含まれています。

高レベルでは、Amazon ESにデータをストリーミングするように設定するには、次の手順が必要です。

  • Amazon S3バケットとAmazon ESドメインの作成
  • Lambdaデプロイメントパッケージを作成する。
  • Lambda関数を構成する。
  • Amazon ESにデータをストリーミングする承認を付与します。
15

EMRがある場合は、sparkアプリケーションを作成して検索を実行します。これを実行しました。これは分散検索として機能します

0

FilestashDisclaimer:I's author)を使用して、独自のインスタンスをインストールし、S3バケットに接続できます。大量のデータがあり、良い状態である必要がある場合は、最終的に全体をインデックス化するために少し時間を与えます

0
Mickael Kerjean