2011-05-03 42 views
3

我想提一下我的小項目,如果我正常運行。我需要使用Medline的所有文章(http://www.nlm.nih.gov/bsd/licensee/2011_stats/baseline_doc.html)。對於那些不熟悉Medline數據庫的人,我添加一些信息:使用python和mongoDB索引20M記錄

  • 大約有20.000.000條記錄(83.4 GB磁盤空間),每條記錄都有很多字段和子字段。
  • 您可以下載此數據庫(帶有許可證)的XML格式。
  • 這些20M記錄分佈在653個文件中。
  • 每個文件都有一個MedlineCitationSet,這是一組記錄(MedlineCitation's)。

我想處理這些記錄,並獲得信息,如標題,摘要...然後我想這些文件(或記錄)與python和mongodb索引。我有一個選項:

我已經創建了一個medline解析器,併爲每個記錄創建了一個mongoDB的JSON條目,並通過pubmedID建立索引之後。然後我可以創建一個函數,如get_abstract('pubmedID'):string。

我的問題是:

  • 這是個好主意嗎? (XML解析 - > JSON - >插入和索引!)
  • 我可以使用GridFS並獲取與每個文件的記錄相對應的塊嗎?怎麼樣?
  • 你知道嗎?
+3

是否行得通?那很好。你有問題嗎?如果是這樣,請提供您遇到的實際問題。這聽起來像你真正的問題很簡單 - 如何使用GridFS。也許你應該專注於你需要的具體幫助。 「你知道另一種方式」是一個愚蠢的問題,有無數其他方式,其中大多數是一個壞主意。 – 2011-05-03 12:24:24

+0

謝謝S.Lott!是的,我的exatc問題是,我如何將GridFS和Medline文件結合起來? 。 – 2011-05-03 13:01:31

+0

我的XML2JSON解析器有問題,因爲這個XML不是微不足道的,我不知道GridFS是否可以幫助我...... – 2011-05-03 14:06:36

回答

2

這是一個好主意嗎? (XML解析 - > JSON - >插入和索引!)

它工作嗎? JSON往往比XML小,這可能是一個很好的變化。

我可以使用GridFS並獲取與每個文件的記錄相對應的塊嗎?怎麼樣?

GridFS通常用於存儲靜態文件,如圖像或視頻。 MongoDB可以支持非常大的文檔(16MB ==多個小說)。文章的文章可能會比這個小得多。

如果你只是計劃存儲文本,那麼你不應該需要任何GridFS。如果你想存儲圖像,那麼GridFS對此很有用。請致電GridFS here。請注意,GridFS只是一個規範。一切仍然存儲在常規的MongoDB集合中。


PS:它看起來像pubmedID是一個獨特的關鍵。在創建文檔時,您可以通過覆蓋_idpubmedID來節省空間。

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

+0

非常感謝!是的,我將使用pudmedID作爲_id! :d – 2011-05-04 07:32:47