如何在不使用Base64的情况下在ElasticSearch中索引二进制文件

我正在使用NodeJS elasticsearch包与ElasticSearch进行交互。 我有一个文件有一个file字段。 我想能够上传一个文件到索引,但唯一的办法,我发现是通过使用elasticsearch-mapper-attachment插件。

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

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

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

一些应用程序可以做什么(例如Search Technology的Aspire) – 它们通过Tika在本地运行二进制文件,提取文本并仅将文本上载到要索引的文档中。

它可能不是你正在寻找的答案,但你真的只有两个select – 使用弹性插件(并在上传文件到弹性之前在二进制代码中将二进制转换为base64),或parsing二进制文件并在代码中提取文本然后只是上传文本到弹性。 前者更容易,后者让你更好地控制这个过程