如何在不使用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二进制文件并在代码中提取文本然后只是上传文本到弹性。 前者更容易,后者让你更好地控制这个过程
- NodeJs-ElasticSearch批量APIerror handling
- 如何检查ElasticSearch客户端是否连接?
- embedded式Mongoose的弹性search
- AWS Lambdafunction(节点) – 自定义超时logging
- client.indices.putTemplate和client.putTemplate之间的区别
- 如何在Elasticsearch中创build或replace文档?
- 如何获得弹性search玩MongoDb和node.js?
- 当字段未定义或从对象丢失时从elasticsearch获取数据
- 在node.js环境中将mongodb与elasticsearch集成在一起