对于分页,我们可以选择在请求对象中设置限制和偏移量,但它会检索所有文件以及与搜索字符串匹配的文件夹。我们的要求是只获取匹配文件,跳过具有给定限制的文件夹。跳过文件夹正在影响分页。
默认情况下,以下注释行不要'允许提及具体类型:
boxSearch = boxNetContext.getBoxClient().getSearchManager().search(searchFileName, boxDefaultRequestObject);
我们在下面进行了更改,以便将类型传递为FILES
。
SearchRequest request = new SearchRequest(boxNetContext.getBoxClient().getConfig(), boxNetContext.getBoxClient().getJSONParser(), searchFileName, boxDefaultRequestObject);
boxSearch = (BoxCollection) boxNetContext.getBoxClient().getSearchManager().getResponseAndParseAndTryCast(request, BoxResourceType.FILES, boxNetContext.getBoxClient().getJSONParser());
此更改无效。它还检索文件和文件夹。 请帮助我们仅检索不影响分页的匹配文件
答案 0 :(得分:0)
Search API documentation未提供按type
过滤的方法。但是,它确实说明了:
as you’re parsing the results, be prepared to skip over any types of items your app does not recognize.
因此,您似乎需要在代码中过滤这些结果。如果您需要在每页显示一定数量的结果,则可能需要执行多个搜索查询才能缓存所需的数字结果。
答案 1 :(得分:0)
以下是我在Android平台上的经验建议。
找到com.box.boxjavalibv2.requests.SearchRequest.java文件,更改代码如下
public SearchRequest(final IBoxConfig config, final IBoxJSONParser parser, final String searchQuery, BoxDefaultRequestObject requestObject)
throws BoxRestException {
super(config, parser, URI, RestMethod.GET, requestObject);
addQueryParam("query", searchQuery);
}
要
public SearchRequest(final IBoxConfig config, final IBoxJSONParser parser, final String searchQuery, BoxDefaultRequestObject requestObject)
throws BoxRestException {
super(config, parser, URI, RestMethod.GET, requestObject);
addQueryParam("query", searchQuery);
addQueryParam("type", "file");
}
然后结果是没有文件夹的纯文件。
祝你好运。