Pregunta

Me gustaría mencionar sobre mi pequeño proyecto, y si estoy en camino. Necesito trabajar con todos los artículos de Medline (http://www.nlm.nih.gov/bsd/licensee/2011_stats/baseline_doc.html). Para esos no están familiarizados con la base de datos Medline, agrego un poco de información:

  • Hay aprox. 20.000.000 de registros (espacio de disco de 83.4 GB), cada uno tiene muchos campos y subcampos.
  • Puede descargar este DB (con licencia) en formato XML.
  • Estos 20 m de registros se distribuyen en 653 archivos.
  • Cada archivo tiene un MedlineCitationset, y este es un conjunto de registros (MedlineCitation's).

Quiero procesar estos registros y obtener información como Título, Resumen ... Entonces he pensado en indexar estos archivos (o registros) con Python y MongoDB. Y tengo una opción:

He creado un analizador MEDLINE y para cada registro se crea una entrada JSON para MongoDB, y después de la indexación de PubMedid. Entonces puedo crear una función como get_abstract ('PubMedid'): String.

Mis preguntas son:

  • ¿Es una buena idea? (PARSING XML -> JSON -> ¡Insertar e indexación!)
  • ¿Puedo usar Gridfs y obtener equivalentes de fragmentos en los registros para cada archivo? ¿Cómo?
  • ¿Sabes de otra manera?
¿Fue útil?

Solución

¿Es una buena idea? (PARSING XML -> JSON -> ¡Insertar e indexación!)

¿Funciona? JSON tiende a ser más pequeño que XML, este es probablemente un buen cambio.

¿Puedo usar Gridfs y obtener equivalentes de fragmentos en los registros para cada archivo? ¿Cómo?

GRIDFS es generalmente para almacenar archivos estáticos como imágenes o video. MongoDB puede admitir documentos muy grandes (16 MB == Varias novelas). El texto para un artículo de Medline probablemente será mucho más pequeño que esto.

Si solo planea almacenar texto, entonces no debería necesitar ninguna cuadrícula. Si desea almacenar imágenes, entonces GridFS es útil para hacer esto.

Por favor lea Gridfs aquí. Tenga en cuenta que GridFS es solo una especificación. Todo todavía se almacena dentro de las colecciones regulares de MongoDB.


PD: parece pubmedID es una clave única. Puede ahorrar espacio anulando el _id con pubmedID Cuando crea el documento.

es decir: collection.insert({"_id": xml_obj.pubmedID, "text" : xml_obj.article_text})

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top