Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在AmazonS3上访问索引Lucene?_Java_Amazon S3_Amazon Ec2_Lucene - Fatal编程技术网

Java 如何在AmazonS3上访问索引Lucene?

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

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

具体而言,我有以下情况:

bucket S3上的路径索引->
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。