2016-07-27 19 views
1

私は、Spring-Data-ElasticSearchを使用して、Elasticでドキュメント全体としてのインデックスを作成しています。フィールドの1つは、ユーザーアップロードファイルのString型のBase64エンコーディングです。 Base64でエンコードされた文字列をElasticSearchにインデックスする最も良い方法

@Document(indexName = "user_record") 
public class UserRecord { 

    private String base64UserUploadFile; 

... 

は現在、このbase64文字列はそれほど検索できない伸縮性に直接インデックスされるので、私は、私は、このフィールドに変換することなく、そのファイルから実際のコンテンツを検索できるようにしたい場合は、ここで私のオプションを何思ったんだけど私のクラスの実際のファイルの内容の文字列ですか?

答えて

1

あなたはmapper-attachmentsプラグインを使用し、Base64のコンテンツはインデックス化して検索される方法Attachmentフィールドタイプ

@Document(indexName = "user_record") 
public class UserRecord { 

    @FieldType(type = FieldType.Attachment, store = false) 
    private String base64UserUploadFile; 

... 

であなたのフィールドを宣言することがあります。インデックスを不必要に膨らませたくない場合は、コンテンツ(したがってstore=false)を保存しないことをお勧めします。

+0

これを試すことができましたか? – Val

+0

申し訳ありません私はそれを働かせることができませんでした。私はそれを調べましたが、現在のプロジェクトで使用されているESは、マッパー添付のネイティブサポートを持たないSpring Data ES 1.5を使用して、1.7.2と古すぎます。だから私はESをアップグレードしようとしていますが、このESはプロジェクトの他のコンポーネントでも使用されているので、いくらかの努力が必要です。 – Derek

関連する問題