我正在尝试使用 Lucene 和索引 S3 上的文件。我发现了这个问题Integrating Lucene Index and Amazon AWS,带有一些代码,可以将 FSDirectory 调用替换为
S3Directory dir = new S3Directory("my-lucene-index");
dir.create();
// use it in your code in place of FSDirectory, for example
dir.close();
dir.delete();
. 为了使它工作,我需要从 aws 下载一些依赖项,即以下内容:
- aws-core-2.13.54
- 实用程序-2.13.54
- 授权 2.13.54
- http-client-spi-2.13.54
- aws-xml-protocol-2.13.54
从 Lucene 我有以下依赖项:
- lucene-core-7.5.0
- lucene-建议-6.4.0
对于日志记录,我有以下依赖项:
- log4j-slf4j-impl-2.13.3
- log4j 到 slf4j-2.13.3
- log4j-core-2.13.3
- log4j-api-2.13.3
此外,我有以下 AWS 开发工具包依赖项:
- aws-java-sdk-core-1.11.820
对于代码的其他部分,我需要额外的 AWS SDK 依赖项,但是我通过删除它是否会产生影响来检查它,但它没有影响。
我已经检查了几个小时的依赖关系,据我了解,类路径中应该没有冲突的依赖关系,但是每当我尝试运行程序时,我都会收到错误消息:
java.lang.NoSuchMethodError: software.amazon.awssdk.utils.IoUtils.closeQuietly(Ljava/lang/AutoCloseable;Lsoftware/amazon/awssdk/thirdparty/org/slf4j/Logger;)
这显然表明一些相互冲突的依赖关系。但我没有看到,哪些依赖项是冲突的。有没有人遇到过这个问题?还是现在有更好的方法来使用 Lucene 在 AWS S3 上索引数据?