3

シナリオ

基本的にインデックス付きドキュメントのテンプレートとして使用される単純な POJO があります。この POJO には、タイプ java.util.Date のフィールド createdTimestamp が含まれています。

ES クラスターとの通信に TransportClient を使用しています。同じクライアント オブジェクトがインデックスを作成し、Bean を Elasticsearch ドキュメントとしてインデックス付けしています。POJO は最初に json に変換され、次に client.prepareIndex() メソッドに渡されます

インデックスの分析には Kibana を使用します。

問題 :

json には「2017 年 3 月 20 日 4:39:39 PM」のように createdTimestamp が含まれていますが、インデックスが作成されるとすぐに EPOC time(long number) に変換されます。これは、キバナでのタイムスタンプ ベースの分析には適していません。

Logstash インデックスの @timestamp フィールドと同じように使用できるように、ES にインデックスを付ける前に POJO でフィールドを構成する方法が必要です。

Elasticsearch ライブラリでクラス TimestampFieldMapper に出くわしましたが、それを使用する方法が見つかりませんでした。

ES 5.2.2 、キバナ 5.2.2 、トランスポート クライアント 5.2.2 の使用

4

0 に答える 0