【发布时间】:2012-07-29 19:24:25
【问题描述】:
如何获得 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);
每次搜索我都会在控制台上收到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 核心下的实用程序??
-
100 个文档是非常小的数量。尝试使用
System.nanoTime() -
@mishadoff .. 我做到了.. 但我怎么能用它来显示结果.. 我的意思是我应该选择什么单位,这样.. 我在结果页面上没有得到 0 ...