如何在不使用Base64

时间:2016-09-29 00:13:53

标签: node.js elasticsearch elasticsearch-plugin elasticsearch-2.0 elasticsearch-mapping

我正在使用NodeJS elasticsearch包与ElasticSearch进行交互。我有一个file字段的文档。我希望能够将文件上传到索引,但我找到的唯一方法是使用elasticsearch-mapper-attachment插件。

问题是,如果我使用它,我必须将整个文件加载到内存中,将其编码为Base64,然后将String传递给ElasticSearch。

我希望能够将Stream传递给ElasticSearch(引用任何二进制文件:pdf,xls,doc,ppt)。

1 个答案:

答案 0 :(得分:2)

elasticsearch-mapper-attachment插件解析上传的二进制文件,并使用内置的Tika提取器提取文本以进行进一步索引。

某些应用程序会做什么(例如搜索技术的Aspire) - 它们通过本地Tika运行二进制文件,提取文本并仅使用要索引的文档上传该文本。

它可能不是您正在寻找的答案,但您实际上只有两个选项 - 使用Elastic插件(并在将文档上传到弹性之前将二进制文件转换为yoru代码中的base64),或者解析二进制文件并提取文本在您的代码中,然后将该文本上传到弹性。前者更容易,后者使您可以更好地控制过程