如何在不使用 Base64 的情况下在 ElasticSearch 中索引二进制文件
How to index binary file in ElasticSearch without using Base64
我正在使用 NodeJS elasticsearch
包与 ElasticSearch 交互。我有一个包含 file
字段的文档。我希望能够将文件上传到索引,但我找到的唯一方法是使用 elasticsearch-mapper-attachment 插件。
问题是,如果我使用它,我必须将整个文件加载到内存中,将其编码为 Base64,然后将字符串传递给 ElasticSearch。
我希望能够将 Stream 传递给 ElasticSearch(引用任何二进制文件:pdf、xls、doc、ppt)。
elasticsearch-mapper-attachment 插件解析上传的二进制文件并使用内置的 Tika 提取器提取文本以进一步编制索引。
某些应用程序的作用(例如 Search Technology 的 Aspire)- 它们 运行 通过 Tika 在本地生成二进制文件,提取文本并仅将该文本与要索引的文档一起上传。
这可能不是您正在寻找的答案,但您实际上只有两个选择 - 使用 Elastic 插件(并在将文档上传到 elastic 之前在 yoru 代码中将二进制文件转换为 base64),或者解析二进制文件并提取代码中的文本,然后仅将该文本上传到 elastic。前者更容易,后者可以让您更好地控制流程
我正在使用 NodeJS elasticsearch
包与 ElasticSearch 交互。我有一个包含 file
字段的文档。我希望能够将文件上传到索引,但我找到的唯一方法是使用 elasticsearch-mapper-attachment 插件。
问题是,如果我使用它,我必须将整个文件加载到内存中,将其编码为 Base64,然后将字符串传递给 ElasticSearch。
我希望能够将 Stream 传递给 ElasticSearch(引用任何二进制文件:pdf、xls、doc、ppt)。
elasticsearch-mapper-attachment 插件解析上传的二进制文件并使用内置的 Tika 提取器提取文本以进一步编制索引。
某些应用程序的作用(例如 Search Technology 的 Aspire)- 它们 运行 通过 Tika 在本地生成二进制文件,提取文本并仅将该文本与要索引的文档一起上传。
这可能不是您正在寻找的答案,但您实际上只有两个选择 - 使用 Elastic 插件(并在将文档上传到 elastic 之前在 yoru 代码中将二进制文件转换为 base64),或者解析二进制文件并提取代码中的文本,然后仅将该文本上传到 elastic。前者更容易,后者可以让您更好地控制流程