Domanda

Vorrei menzionare il mio piccolo progetto e se sono sulla buona strada. Ho bisogno di lavorare con tutti gli articoli di Medline (http://www.nlm.nih.gov/bsd/licensee/2011_stats/baseline_doc.html). Per quelli non hanno familiarità con il database Medline, aggiungo qualche informazione:

  • Ci sono ca. 20.000.000 di record (83,4 GB di spazio su disco), ciascuno ha molti campi e sottocampi.
  • Puoi scaricare questo DB (con la licenza) in formato XML.
  • Questi 20 m di record sono distribuiti in 653 file.
  • Ogni file ha un MedLineCitationset e questo un insieme di record (MedlineCitation's).

Voglio elaborare questi record e ottenere informazioni come titolo, astratto ... quindi ho pensato di indicizzare questi file (o record) con Python e MongoDB. E ho un'opzione:

Ho creato un parser Medline e per ogni record è stato creato una voce JSON per MongoDB e dopo l'indicizzazione di PubMedid. Quindi posso creare una funzione mi piace get_abstract ('PubMedd'): stringa.

Le mie domande sono:

  • È una buona idea? (Analisi XML -> JSON -> INSERT E INDICE!)
  • Posso usare GRIDFS e ottenere pezzi equivalenti ai record per ogni file? Come?
  • Sai altro modo?
È stato utile?

Soluzione

È una buona idea? (Analisi XML -> JSON -> INSERT E INDICE!)

Funziona? JSON tende ad essere più piccolo di XML, questo è probabilmente un buon cambiamento.

Posso usare GRIDFS e ottenere pezzi equivalenti ai record per ogni file? Come?

GRIDFS è generalmente per la memorizzazione di file statici come immagini o video. MongoDB può supportare documenti molto grandi (16 MB == diversi romanzi). Il testo per un articolo di Medline sarà probabilmente molto più piccolo di questo.

Se hai solo intenzione di archiviare il testo, non dovresti aver bisogno di GRIDFS. Se si desidera archiviare immagini, GRIDFS è utile per farlo.

Si prega di leggere Gridfs qui. Si noti che GRIDFS è solo una specifica. Tutto è ancora conservato all'interno di normali collezioni MongoDB.


PS: sembra pubmedID è una chiave unica. Puoi risparmiare spazio sopravvalutando il _id insieme a pubmedID Quando si crea il documento.

cioè: collection.insert({"_id": xml_obj.pubmedID, "text" : xml_obj.article_text})

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top