【问题标题】:Result limiting with GAE Search API使用 GAE 搜索 API 限制结果
【发布时间】:2015-03-30 02:29:39
【问题描述】:

这个搜索代码让我很烦,

if(webSafeCursor != null && !webSafeCursor.isEmpty()){
    Cursor cursor = Cursor.newBuilder().build(webSafeCursor);
    QueryOptions options = QueryOptions.newBuilder()
                           .setLimit(10)
                           .setFieldsToSnippet("content")
                           .setCursor(cursor)
                           .build();
    query = Query.newBuilder()
            .setOptions(options)
            .build(queryString);
    }

    Results<ScoredDocument> results = null;

    if(query != null){
        results = index.search(query);
    } else {
               results = index.search(queryString);
           }
    results.getCursor(); // NULL!
}

这里的问题是,results 返回的是 20 项,而 QueryOptions 中很明显限制为 10。

这段代码可能有什么问题?

另一件事是查询结果不发出游标,而很明显(通过手动检查)查询应该返回超过 20 个项目,并且应该返回游标?或者这是正确的行为?

【问题讨论】:

    标签: java google-app-engine search full-text-search gae-search


    【解决方案1】:

    好吧,据我从您的代码中得知,您的 queryOptions 仅在您传入非空游标时使用。因此,如果您还没有光标,您也不会得到光标。在

    之后添加右大括号
    Cursor cursor = Cursor.newBuilder().build(webSafeCursor);
    

    而且我认为你会得到你想要的行为(当然,在平衡其他地方的大括号之后)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-28
      • 2014-12-20
      • 2016-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多