3

私の小さなプロジェクトについて、そして私が順調に進んでいるかどうかについて言及したいと思います。Medline(http://www.nlm.nih.gov/bsd/licensee/2011_stats/baseline_doc.html)のすべての記事を処理する必要があります。Medlineデータベースに精通していない人のために、私は少し情報を追加します:

  • 約あります。20.000.000のレコード(83.4 GBのディスク容量)。それぞれに多くのフィールドとサブフィールドがあります。
  • このDB(ライセンス付き)をXML形式でダウンロードできます。
  • これらの20Mのレコードは、653個のファイルで配布されます。
  • すべてのファイルには1つのMedlineCitationSetがあり、これは一連のレコード(MedlineCitation)です。

これらのレコードを処理して、タイトル、要約などの情報を取得したいと思います。次に、これらのファイル(またはレコード)にpythonとmongodbでインデックスを付けることを考えました。そして私には1つの選択肢があります:

medlineパーサーを作成し、レコードごとにmongoDBのJSONエントリを作成し、pubmedIDでインデックスを作成しました。次に、get_abstract('pubmedID'):stringのような関数を作成できます。

私の質問は次のとおりです。

  • それは良い考えですか?(XML解析-> JSON->挿入とインデックス作成!)
  • GridFSを使用して、各ファイルのレコードに相当するチャンクを取得できますか?どのように?
  • 他の方法を知っていますか?
4

1 に答える 1

2

それは良い考えですか?(XML 解析 --> JSON --> 挿入とインデックス作成!)

それは機能しますか?JSON は XML よりも小さくなる傾向がありますが、これはおそらく良い変更です。

GridFS を使用して、各ファイルのレコードに相当するチャンクを取得できますか? どのように?

GridFS は通常、画像や動画などの静的ファイルを格納するためのものです。MongoDB は非常に大きなドキュメント ( 16MB == いくつかの小説) をサポートできます。medline 記事のテキストは、おそらくこれよりもはるかに小さくなります。

テキストを格納するだけの場合は、GridFS は必要ありません。画像を保存したい場合は、GridFS が便利です。

GridFS についてはこちらをご覧ください。GridFS は単なる仕様であることに注意してください。すべてが通常の MongoDB コレクション内に保存されます。


PS:pubmedID一意のキーのようです。ドキュメントを作成するときに_idwithをオーバーライドすることで、スペースを節約できます。pubmedID

すなわち: collection.insert({"_id": xml_obj.pubmedID, "text" : xml_obj.article_text})

于 2011-05-03T19:39:47.453 に答える