使用弹性搜索Java客户端时如何将pdf上传到elasticsearch?

时间:2017-02-17 10:59:01

标签: java elasticsearch client

link说明了如何使用REST API上传附件。

但我想用java客户端上传附件...

我认为以下课程是相关的(尽管我可能错了)......

org.elasticsearch.ingest.IngestService
org.elasticsearch.ingest.PipelineStore

我意识到我可以回到REST界面,但我宁愿先尝试使用原生客户端......

2 个答案:

答案 0 :(得分:1)

只需在以下字段中发送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()
   );

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

答案 1 :(得分:0)

您可以使用以下四个选项将PDF索引到ElasticSearch

  • 摄取附件插件
  • Apache Tika
  • FsCrawler
  • 安巴尔

this post

中描述的优点/缺点