1

NodeJSelasticsearchパッケージを使用して ElasticSearch とやり取りしています。フィールドを持つドキュメントがありfileます。ファイルをインデックスにアップロードできるようにしたいのですが、私が見つけた唯一の方法は、elasticsearch-mapper-attachment プラグインを使用することです。

問題は、それを使用する場合、ファイル全体をメモリにロードし、Base64 にエンコードしてから、String を ElasticSearch に渡す必要があることです。

Stream を ElasticSearch に渡すことができるようにしたいと思います (任意のバイナリ ファイルを参照します: pdf、xls、doc、ppt)。

4

1 に答える 1

3

elasticsearch-mapper-attachment プラグインは、アップロードされたバイナリ ファイルを解析し、組み込みの Tika エクストラクタを使用してさらにインデックスを作成するためにテキストを抽出します。

一部のアプリケーションが行うこと (たとえば、Search Technology の Aspire) - Tika を介してローカルでバイナリを実行し、テキストを抽出し、そのテキストだけをドキュメントと共にアップロードしてインデックスを作成します。

探している答えではないかもしれませんが、実際には 2 つのオプションしかありません。Elastic プラグインを使用する (そして、ドキュメントを Elastic にアップロードする前に、バイナリをコードで base64 に変換する)、またはバイナリを解析してコード内のテキストを抽出するそのテキストだけをエラスティックにアップロードします。前者はより簡単で、後者はプロセスをより細かく制御できます

于 2016-09-29T18:20:31.957 に答える