Java 如何在AmazonS3上访问索引Lucene?
我在S3上创建了一个bucket,通过多个EC2实例共享一些索引Lucene。 索引是在本地机器中创建的,之后被上传到bucket中。 现在我想从EC2中的虚拟机访问这些索引,但是IndexReader Lucene需要一个本地文件目录 具体而言,我有以下情况: bucket S3上的路径索引->Java 如何在AmazonS3上访问索引Lucene?,java,amazon-s3,amazon-ec2,lucene,Java,Amazon S3,Amazon Ec2,Lucene,我在S3上创建了一个bucket,通过多个EC2实例共享一些索引Lucene。 索引是在本地机器中创建的,之后被上传到bucket中。 现在我想从EC2中的虚拟机访问这些索引,但是IndexReader Lucene需要一个本地文件目录 具体而言,我有以下情况: bucket S3上的路径索引->bucket\u name/index/index\u target\u目录 IndexReader indexReader = DirectoryReader.open(FSDirectory.ope
bucket\u name/index/index\u target\u目录
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
一起使用?看看我写的。它可以直接从AWS S3读取和写入Lucene索引,而不需要本地文件系统。这是一个非常早期的阶段,所以要小心使用
S3Directory=news3directory(“我的lucene索引”);
dir.create();
//例如,在代码中使用它来代替FSDirectory
dir.close();
dir.delete();
S3似乎是Lucene索引的错误解决方案,您是否考虑过网络驱动器,例如EFS或SoftNAS?谢谢您的回答。不,我没有考虑过这个解决方案,因为在我学习的大多数大学课程中,我只学习在AWS上使用EC2和S3。我将核实大学的拨款是否允许使用EFS。