今関わっているプロジェクトではLuceneを使っているのですが、

Luceneのバージョンがだいぶ古いこともあって、いろいろDeprecatedなWaringが出てました。

掲題のNumberToolsもそれ。

代わりにNumericUtilsを使えとのこと。

試しにインデックス生成の部分だけ NumberTools#longToString から NumericUtils#longToPrefixCoded にしてみたら

検索結果が返らなくなってアレレー?って思って試してみたら、出力文字列も変わってました。

public class Test1 {

  @Test
  public void test(){
    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.MONTH, 1);
    Date now = new Date(), future = cal.getTime();

    System.out.println(now.getTime() + " < " + future.getTime() + " = " + now.compareTo(future));
    Assert.assertTrue(now.compareTo(future) < 0);

    String s = NumberTools.longToString(now.getTime());
    String t = NumberTools.longToString(future.getTime());
    System.out.println(Base64.encode(s.getBytes()) + " < " + Base64.encode(t.getBytes()) + " = " + s.compareTo(t));
    Assert.assertTrue(s.compareTo(t) < 0);

    s = NumericUtils.longToPrefixCoded(now.getTime());
    t = NumericUtils.longToPrefixCoded(future.getTime());
    System.out.println(Base64.encode(s.getBytes()) + " < " + Base64.encode(t.getBytes()) + " = " + s.compareTo(t));
    Assert.assertTrue(s.compareTo(t) < 0);

    s = NumberTools.longToString(1);
    t = NumberTools.longToString(100000000L);
    System.out.println(Base64.encode(s.getBytes()) + " < " + Base64.encode(t.getBytes()) + " = " + s.compareTo(t));
    Assert.assertTrue(s.compareTo(t) < 0);

    s = NumericUtils.longToPrefixCoded(1);
    t = NumericUtils.longToPrefixCoded(100000000L);
    System.out.println(Base64.encode(s.getBytes()) + " < " + Base64.encode(t.getBytes()) + " = " + s.compareTo(t));
    Assert.assertTrue(s.compareTo(t) < 0);

    s = NumberTools.longToString(2L);
    t = NumberTools.longToString(11L);
    System.out.println(Base64.encode(s.getBytes()) + " < " + Base64.encode(t.getBytes()) + " = " + s.compareTo(t));
    Assert.assertTrue(s.compareTo(t) < 0);

    s = NumericUtils.longToPrefixCoded(2L);
    t = NumericUtils.longToPrefixCoded(11L);
    System.out.println(Base64.encode(s.getBytes()) + " < " + Base64.encode(t.getBytes()) + " = " + s.compareTo(t));
    Assert.assertTrue(s.compareTo(t) < 0);


  }
}

結果:

1381318591951 < 1383996991951 = -1
MDAwMDAwaG1raGZhdmo= < MDAwMDAwaG5zczJwamo= = -1
IAEAAAAoGWgEC08= < IAEAAAAoI2UYU08= = -10
MDAwMDAwMDAwMDAwMDE= < MDAwMDAwMDAxbmpjaHM= = -1
IAEAAAAAAAAAAAE= < IAEAAAAAAC9XQgA= = -47
MDAwMDAwMDAwMDAwMDI= < MDAwMDAwMDAwMDAwMGI= = -48
IAEAAAAAAAAAAAI= < IAEAAAAAAAAAAAs= = -9

NumericUtilsは得られる文字列がバイナリ(?)っぽかったので全体的にBase64エンコードしてます。

とりあえず大小の比較は正しいっぽいので、

インデックス生成と検索キー両方ともNumrecUtilsに変更すれば期待する動作になりますね。