[lucene] 如何检索全部结果

TonyLian 2010-01-21
TopDocs topDocs = isearcher.search(query, count);

如果全部结果有200件(事先是不知道的),这里如果给count一个很大的数,
如:999999 或 Integer.MAX_VALUE -1

检索时间会变的非常慢(同样是检索出200件,count=200用时10毫秒左右;count=999999用时600多毫秒)

那么要想检索全部结果,该如何写呢?
luckaway 2010-01-21
org.apache.lucene.search.Searcher.maxDoc()
TonyLian 2010-01-21
luckaway 写道
org.apache.lucene.search.Searcher.maxDoc()


这个比 Integer.MAX_VALUE 小了,
但是还是大呀,如果Document有100万,而符合条件的结果只有1000,那也很影响速度呀。
luckaway 2010-01-21
呵呵,是我考虑的太简单了! 这个性能有区别的吗?我不太清楚,要不你就分两次去差,第一次取一条,第二次把一次取的count数再去搜索!!!
TonyLian 2010-01-21
luckaway 写道
呵呵,是我考虑的太简单了! 这个性能有区别的吗?我不太清楚,要不你就分两次去差,第一次取一条,第二次把一次取的count数再去搜索!!!


或许是个不错的注意。
Global site tag (gtag.js) - Google Analytics