tstampフィールドの値を"yyyy/MM/dd HH:mm:ss"形式で表示するには
tstampフィールドの値は、Lukeなどを使ってみると、"20090908080249515"のような17桁の数字になっている。
この17桁の数値は、Hitオブジェクトのgetメソッドを使って取得することができるので、これを整形できればよい。
ということで、17桁の数値のもとをたどると。。
BasicIndexingFilerクラスの100行目
doc.add(new Field("tstamp",
DateTools.timeToString(datum.getFetchTime(), DateTools.Resolution.MILLISECOND),
Field.Store.YES, Field.Index.NO));
getFetchTimeメソッドを追ってみると、
public long getFetchTime() { return fetchTime; }
fetchTimeを追ってみると、
private long fetchTime = System.currentTimeMillis();
tstampフィールドの値は、System.currentTimeMilliis()の値だということがわかる。
さて、tstampフィールドの値をHitオブジェクトのgetメソッドを通じて取得すると、String型に変換後の値が出力されるので、プログラムでtstampフィールドの値をフォーマットするには、もう少し工夫する必要があった。
つまり、String型からDate型に戻してあげる作業が。。うーん。。ほふく前進だ。
Date tstamp = DateTools.stringToDate(hit.get("tstamp"));