我正在使用数据导入处理程序(DIH)在solr中创建文档。每个文档将包含零个或多个附件。附件(例如PDF,Word文档等)内容被解析(通过Tika)并与附件的路径一起存储。附件的内容(和路径)没有存储在数据库中(我不想这样做)。
我目前有一个包含DIH所需的所有字段的模式。然后我还将attachmentContent和attachmentPath字段添加为multiValued。但是,当我使用Solrj添加文档时,只有一个附件(最后添加的附件)由solr存储和索引。这是代码:
ContentStreamUpdateRequest up = new ContentStreamUpdateRequest("/update/extract");
up.setParam("literal.id", id);
for (MultipartFile file : files) {
// skip over files where the client didn't provided a filename
if (file.getOriginalFilename().equals("")) {
continue;
}
File destFile = new File(destPath, file.getOriginalFilename());
try {
file.transferTo(destFile);
up.setParam("literal.attachmentPath", documentWebPath + acquisition.getId() + "/" + file.getOriginalFilename());
up.addFile(destFile);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
try {
up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);
solrServer.request(up);
} catch (SolrServerException sse) {
sse.printStackTrace();
}catch (IOException ioe) {
ioe.printStackTrace();
}
如何通过solr存储多个附件(内容和路径)?或者有更好的方法来实现这一目标吗?