質問

When I search the AppEngine Search API, it is only returning 20 results, even though I have 68 items in the index. The reference documentation says it can return up to 10,000 results. How do I return more results?

Code

public Results<ScoredDocument> search(String q) {
    log.severe("Searching with query: " + q);
    try {
        Results<ScoredDocument> results = getIndex().search(q);
        log.severe("results.size:"+results.getNumberReturned());

public Index getIndex() {
    IndexSpec indexSpec = IndexSpec.newBuilder().setName("OnixIndex").build(); 
    Index index = SearchServiceFactory.getSearchService().getIndex(indexSpec);
    return index;
}

Log

E 2013-12-03 17:55:49.858
com.mwv.pic.service.SearchService search: Searching with query: 
E 2013-12-03 17:55:51.446
com.mwv.pic.service.SearchService search: results.size:20

Index

Imgur

Version

appengine-api-1.0-sdk-1.8.6.jar

Reference

https://developers.google.com/appengine/docs/java/search/

役に立ちましたか?

解決

I guess the number of items in the results has some default pagination. The number you're looking for is getNumberFound() which should contain the expected number of results satisfying the query.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top