如何在Amazon S3上访问索引Lucene?

时间:2015-11-09 09:13:29

标签: java amazon-s3 amazon-ec2 lucene

我在S3上创建了一个存储桶,用多个EC2实例共享一些Lucene索引。 索引是在本地计算机上创建的,之后上传到存储桶中。 现在我想从EC2中的虚拟机访问这些索引,但是IndexReader Lucene需要一个本地文件目录。

具体我有这种情况:

存储桶S3上的路径索引 - > bucket_name/indexes/index_target_directory

IndexReader indexReader = DirectoryReader.open(FSDirectory.open(new File(index_target_directory_path)));
AmazonS3 s3 = new AmazonS3Client(new BasicAWSCredentials(accessKey, secretKey));
S3Object s3object = s3.getObject(new GetObjectRequest("bucket_name","indexes/index_target_directory"));

我知道s3object.getContent()会返回InputStream,如何将其与IndexReader一起使用?

1 个答案:

答案 0 :(得分:0)

看看我写的lucene-s3directory。它可以直接在AWS S3中读写 Lucene索引,而无需本地文件系统。现在还处于早期阶段,请谨慎使用。

S3Directory dir = new S3Directory("my-lucene-index");
dir.create();
// use it in your code in place of FSDirectory, for example
dir.close();
dir.delete();