Java 计算lucene搜索的时间

Java 计算lucene搜索的时间,java,time,lucene,Java,Time,Lucene,如何获得lucene搜索字符串所用的确切时间。 我想展示这样的东西: 关于x会导致xx秒 我怎样才能知道准确的时间?他们的lucene库中是否有用于此的实用程序? 还是我需要自己计算 编辑: 假设它们在lucene核心库下不适用: 这是一个搜索代码: TopScoreDocCollector collector = TopScoreDocCollector.create(100, true); is.search(query, collector);

如何获得lucene搜索字符串所用的确切时间。 我想展示这样的东西:

关于
x
会导致
xx

我怎样才能知道准确的时间?他们的lucene库中是否有用于此的实用程序? 还是我需要自己计算

编辑: 假设它们在lucene核心库下不适用:

这是一个搜索代码:

TopScoreDocCollector collector = TopScoreDocCollector.create(100, true);
            is.search(query, collector);
            hits = collector.topDocs().scoreDocs;
如何获取搜索的准确时间(我应该用计时器将哪一行括起来)

再编辑一次:我尝试了以下操作:

        long t1 = System.currentTimeMillis();
        is.search(query, collector);
        hits = collector.topDocs().scoreDocs;
        long t2 = System.currentTimeMillis();

        Long time = (t2-t1);
        System.out.println("time : " + time);
每次搜索我都会在控制台上获得
时间:0

这是否意味着。。。Lucene没有花时间搜索?(我的索引中只有100个文档)

还有一个:尝试了这个

long start = System.nanoTime();
            is.search(query, collector);
            hits = collector.topDocs().scoreDocs;
            long end = System.nanoTime();

            long time = (end - start) / 1000;
这张照片是:

time : 10261
time : 12285
time : 14513
time : 1309

在Lucene中搜索对不同的人意味着不同的事情。例如,仅搜索(
indexSearcher.search(…)
)与搜索+迭代所有文档(或仅一页文档)相比。或者使用VS而不进行排序。它可能只会给已经很复杂的API增加不必要的混乱


用时间测量代码包装搜索调用非常简单。顺便说一下,考虑使用或任何其他类似的工具,而不是<代码> Surviv.CurrnTime*< /C> > /P>只需在执行搜索的调用周围包上一个定时器。这意味着…Lucene核心?100文档中没有实用程序是非常小的量。尝试使用
System.nanoTime()
@mishadoff。。是我干的。。但我如何使用它在结果上显示。。。。我的意思是我应该选择什么单位,这样我就不会在结果页上得到0。。。