elasticsearch,client,Java,elasticsearch,Client" /> elasticsearch,client,Java,elasticsearch,Client" />

使用elasticsearch java客户端时,如何将pdf上载到elasticsearch?

使用elasticsearch java客户端时,如何将pdf上载到elasticsearch?,java,elasticsearch,client,Java,elasticsearch,Client,这说明了如何使用RESTAPI上载附件 但是我想用java客户端上传一个附件 我假设以下课程是相关的(尽管我可能错了) 我意识到我可以回到REST界面,但我宁愿先尝试使用本机客户端…只需在如下字段中发送BASE64编码的PDF: String base64; try (InputStream is = YourClass.class.getResourceAsStream(pathToYourFile)) { byte bytes[] = IOUtils.toByteArray(is);

这说明了如何使用RESTAPI上载附件

但是我想用java客户端上传一个附件

我假设以下课程是相关的(尽管我可能错了)


我意识到我可以回到REST界面,但我宁愿先尝试使用本机客户端…

只需在如下字段中发送BASE64编码的PDF:

String base64;
try (InputStream is = YourClass.class.getResourceAsStream(pathToYourFile)) {
    byte bytes[] = IOUtils.toByteArray(is);
    base64 = Base64.getEncoder().encodeToString(bytes);
}

IndexRequest indexRequest = new IndexRequest("index", "type", "id")
   .setPipeline("foo")
   .source(
       jsonBuilder().startObject()
           .field("field", base64)
       .endObject()
   );

如果您不知道,我也会链接到,以防它解决了您想做的事情。

这里有四个选项,您可以使用它们将PDF索引到ElasticSearch

  • 摄取附件插件
  • 阿帕奇提卡
  • FsCrawler
  • 安巴尔
中描述的优点/缺点

String base64;
try (InputStream is = YourClass.class.getResourceAsStream(pathToYourFile)) {
    byte bytes[] = IOUtils.toByteArray(is);
    base64 = Base64.getEncoder().encodeToString(bytes);
}

IndexRequest indexRequest = new IndexRequest("index", "type", "id")
   .setPipeline("foo")
   .source(
       jsonBuilder().startObject()
           .field("field", base64)
       .endObject()
   );