In my project, we allow the user to click the last page link, so if the n specified is less than the totalHits, exception will be thrown.
I've changed to my code to like this
set N to default number of docs to be retrieved
Query query = qp.parse(keyword);
Filter filter = getQueryFilter(parameter);
Sort sort = getSort(parameter);
TopDocs topFieldDocs = searcher.search(query,
topFieldDocs = searcher.search(query, filter, topFieldDocs.totalHits, sort);
In this way, i can achieve my goal.
thanks a lot, i got it
2009/4/4 Chris Hostetter <email@example.com>
: The problem comes as in this procedure i has to set the third parameter n
: and as a result, when user click the last page link, exception will beyou're going to need to change "n" ... typically people just use something
: thrown when the total number of search results excesses the *n* i specified
: in the program. How can i overcome this problem?
int n = DOCS_PER_PAGE * page_num
have you looked at the Lucene Demo code? it has a more complex example of
doing a paginated search (grep for doPagingSearch) ...
: I've posted this problem twice and seen no reply. Could anyone offer a
: hand? Thanks.
You should consider posting to the java-user@lucene mailing list which
is specificly focused on discussions of using hte java API ...
general@lucene is a broader list for discussions about the braoder Lucene
project, or as a getting started point for people who aren't even sure
which Lucene technology (PyLucene, Lucene-Java, Solr, Mahout, Nutch,
etc...) might be useful for them.