2012-09-03 50 views
11

Estoy tratando de utilizar Google Drive como repositorio para muchos tipos diferentes de documentos. Tengo esos documentos organizados en varias carpetas diferentes.Búsqueda en Google Drive dentro de una carpeta específica

Cuando realizo una búsqueda, parece buscar en toda mi cuenta de Google Drive los resultados coincidentes, independientemente de que actualmente me encuentre dentro de una carpeta específica.

Esto me plantea un problema ya que deseo poder refinar mis búsquedas dentro de una agrupación de documentos dada.

Si estoy buscando documentos relacionados con mi trabajo, por ejemplo, no quiero que aparezcan documentos en mi búsqueda que sean personales o en mis directorios personales.

¿Hay alguna manera de definir mejor mi búsqueda para que solo muestre documentos dentro de una carpeta específica y sus subcarpetas? Sé que puedo refinar la búsqueda según el tipo de archivo y la propiedad, pero eso no funciona para mí.

Gracias de antemano.

Respuesta

4

Usando el Google Drive SDK, puede realizar una consulta de búsqueda para <folder_id> in parents.

+2

Hola, Ali, mi problema es algo más complejo ya que mi búsqueda es para archivos en un nivel hoja de un árbol de estructura de carpetas multinivel. La única idea parece ser iterar para todas las ID de carpeta y construir una consulta con cientos de "ID de carpeta en los padres". ¿Hay algo más simple disponible? Básicamente estoy hablando de búsqueda en todas las subcarpetas de la carpeta "myroot". – seanpj

0

Hasta donde yo sé, tendrías que hacer esto para cada subcarpeta, pero la API (y mi aplicación) buscarán por carpeta.

Escribí una aplicación que utiliza la API para buscar por carpeta. Es un poco lento así que sea paciente cuando se está cargando.

https://script.google.com/macros/s/AKfycby6G32K-vKCiLmoKvMtG64cYPHEREEx1PY5IoYrEYaR6WAfbXs/exec

// ----------------- 
var sr = DocsList.getFolder("temp_scripts").find("var"); 
var i = 0; 
for(i=0;i<sr.length;i++) 
{ 
    var r = sr[i]; 
    Logger.log('name='+r.getName()); 
    Logger.log('parent=' +r.getParents()[0].getName()); 
    Logger.log('---'); 
} 
// ----------------- 
0

encontré una especie de solución mediante el descripción de campo.

En mi caso particular, todos los archivos creados en la carpeta que quiero buscar son creados programáticamente por mi propio script, pero es bastante simple escribir un script para (re) definir el campo de descripción en todos los archivos en carpeta específica usando .setDescription(DESCRIPTION). Una vez hecho esto ...

La buena noticia es que la búsqueda estándar en Google Drive da resultados basados ​​en el campo de descripción, incluido el valor establecido en el campo de búsqueda (más cualquier información que desee encontrar en esos archivos) obtendrá los resultados que necesita.

Por supuesto que necesita para escarificar el campo de descripción (o, al menos, overcrowd ello ;-)

Como, creo que todos ustedes, estoy a la espera de la palabra clave carpeta en el campo advanced norma .

0

El código que he incluido me permite buscar el cuerpo de archivos dentro de una carpeta específica. Lo estoy usando para buscar documentos escaneados y lo moveré a otra carpeta según los criterios de búsqueda que especifique.

Lo bueno de esto es que buscará en el cuerpo del documento y devolverá todos los documentos que cumplan con sus criterios de búsqueda. Como puede ver, también puedo especificar un rango de fechas y puede usar otros operadores para definir su búsqueda. https://developers.google.com/drive/web/search-parameters.

Este fue un gran hallazgo para mí y espero que pueda ayudar a otros.

function searchFolder(){ 
var parent = DriveApp.getFolderById(‘*******************’); // folder Id 
var search = 'modifiedDate >"2014-08-01" and modifiedDate < "2014-12-31" and fullText contains "PUT SEARCH TEXT HERE"'; 
var specificFolder = parent.searchFiles(search); 

while (specificFolder.hasNext()) { 
    var file = specificFolder.next(); 
    Logger.log(file.getName()); 
    Logger.log(file.getId()); 
    } 

} 
0

Implementé la función en esta extensión de Chrome. https://chrome.google.com/webstore/detail/advanced-drive-search/chomjcpadndbjgkanbaakmjehdoighab

Puede comprobar el código aquí https://github.com/kissrobber/advanced_google_drive_search_chrome_extension

Lo que hacen es

  • conseguir todas las carpetas
  • crear una consulta con el folder_id y los folder_ids descendientes. Me gusta esto (<folder_id> in parents or <folder_id> in parents or ....)

Si le preocupa el rendimiento, pruebe la extensión de Chrome.

0

Hay otra solución que NO requiere ninguna aplicación o extensión de terceros.

  • Supresión de la carpeta (en la que quieres buscar algo)
  • Buscar con es: destrozados filtro. Por ejemplo: is:trashed query_string
  • restaurar su carpeta de nuevo
Cuestiones relacionadas