質問

私の小さなプロジェクトについて、そして私が順調に進んでいるなら、私は言及したいと思います。 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's)。

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

Medline Parserを作成しましたが、各レコードに対してMongodbのJSONエントリが作成され、Pubmedidによるインデックスが作成されました。次に、get_abstract( 'pubmedid'):stringのような関数を作成できます。

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

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

解決

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

うまくいきますか? JSONはXMLよりも小さい傾向がありますが、これはおそらく良い変化です。

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

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

テキストを保存するだけである場合は、gridfを必要としないでください。画像を保存したい場合は、Gridfsはこれを行うのに役立ちます。

読んでください ここにgridfs. 。 GRIDFSは単なる仕様であることに注意してください。すべてがまだ通常のMongoDBコレクションの中に保管されています。


PS:そうです pubmedID ユニークな鍵です。オーバーライドすることでスペースを節約できます _idpubmedID ドキュメントを作成するとき。

つまり: collection.insert({"_id": xml_obj.pubmedID, "text" : xml_obj.article_text})

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top