我在S3上有一个存储桶,其中包含大量文本文件。
我想在文本文件中搜索一些文本。它仅包含原始数据。 每个文本文件都有不同的名称。
例如,我有一个桶名:
ABC / MyFolder文件/ abac.txt
XYX / myfolder1 / axc.txt
&安培;我想搜索类似&#34的文字;我是人类"在上面的文本文件中。
如何实现这一目标?它甚至可能吗?
答案 0 :(得分:16)
执行此操作的唯一方法是通过CloudSearch,它可以使用S3作为源。它使用快速检索来构建索引。这应该工作得非常好,但要彻底检查定价模型,以确保这对您来说不会太昂贵。
另一种选择是杰克所说的 - 你需要将文件从S3传输到EC2并在那里构建一个搜索应用程序。
答案 1 :(得分:15)
由于october 1st, 2015亚马逊提供了另一种使用弹性搜索的搜索服务,与云搜索或多或少相同,您可以stream data from Amazon S3 buckets。
它将与lambda函数一起使用,以确保发送到S3存储桶的任何新数据都会触发对此Lambda的事件通知并更新ES索引。
使用Java和Javascript示例在amazon doc中详细说明了所有步骤。
在较高级别,设置流式传输数据到Amazon ES需要执行以下步骤:
答案 2 :(得分:0)
您可以使用Filestash(免责声明:我是作者),安装您自己的实例并连接到S3存储桶。如果您有大量数据并且应该很好,那么最终可以花一点时间对整个事物进行索引
答案 3 :(得分:0)
如果您有EMR,请创建一个spark应用程序并进行搜索。我们做到了。这将作为分布式searcn工作