Google drive api 在谷歌硬盘文件中搜索文本需要时间

Google drive api 在谷歌硬盘文件中搜索文本需要时间,google-drive-api,drive,Google Drive Api,Drive,我有这个功能来搜索谷歌驱动器文件中的文本,搜索600个谷歌驱动器文件中的文本需要4分钟以上。有没有办法优化代码 System.out.println(“printFilesInFolder:”) Files.List req=null; 列表结果=新建ArrayList(); Children.List请求=service.Children().List(folderId.setQ(“trashed=false”); 做{ 试一试{ ChildList children=request.exec

我有这个功能来搜索谷歌驱动器文件中的文本,搜索600个谷歌驱动器文件中的文本需要4分钟以上。有没有办法优化代码

System.out.println(“printFilesInFolder:”)

Files.List req=null;
列表结果=新建ArrayList();
Children.List请求=service.Children().List(folderId.setQ(“trashed=false”);
做{
试一试{
ChildList children=request.execute();
System.out.println(“children size>>>>:”+children.size());
for(ChildReference子项:children.getItems()){
System.out.println(“文件Id:+child.getId());
if(!(children.getItems().isEmpty()){
System.out.println(“非空”>>>>>>>”;
字符串子文件夹ID=child.getId();
req=service.files().list().setQ(“'”+子文件夹ID+“”),trashed=false,全文包含“+”关键字+“”;
做{
System.out.println(“内部do”+req.size());
尝试
{
试一试{
FileList children1=req.execute();
result.addAll(children1.getItems());
请求setPageToken(children1.getNextPageToken());
}捕获(IOE异常){
请求setPageToken(空);
}
}
捕获(例外e)
{
}
}
while(req.getPageToken()!=null&&req.getPageToken().length()>0);
}
}
request.setPageToken(children.getNextPageToken());
}捕获(IOE异常){
System.out.println(“发生错误:“+e”);
request.setPageToken(null);
}
}while(request.getPageToken()!=null&&
request.getPageToken().length()>0);

尝试使用。它从根文件夹开始,可以限制搜索时间,因为它不会递归扫描。仅返回此文件夹中与筛选条件匹配的直接条目。以下是and。该示例适用于android应用程序。
     Files.List req = null;
     List<File> result = new ArrayList<File>();
        Children.List request = service.children().list(folderId).setQ("trashed=false");

        do {
          try {
            ChildList children = request.execute();
           System.out.println("children size  >>>>>>>>>>>  : "+ children.size());


            for (ChildReference child : children.getItems()) {

              System.out.println("File Id: " + child.getId());

              if( !(children.getItems().isEmpty())){
                   System.out.println("not empty >>>>>>>>>");

                   String subFolderId = child.getId();

                   req = service.files().list().setQ("'"+subFolderId+"' in parents and trashed=false and fullText contains '"+keyword+"'");


                     do{
                         System.out.println("inside do  " + req.size());
                            try
                            {
                                 try {
                                     FileList children1 = req.execute();
                                     result.addAll(children1.getItems());
                                     req.setPageToken(children1.getNextPageToken());


                                 } catch (IOException e) {
                                     req.setPageToken(null);
                                 }


                            }
                            catch(Exception e)
                            {
                            }

                     }
                     while(req.getPageToken() != null && req.getPageToken().length() > 0);
            }

           }
            request.setPageToken(children.getNextPageToken());
          } catch (IOException e) {
            System.out.println("An error occurred: " + e);
            request.setPageToken(null);
          }
        } while (request.getPageToken() != null &&
                 request.getPageToken().length() > 0);