gpt4 book ai didi

python - 使用 python 和 mongoDB 索引 20M 的记录

转载 作者:可可西里 更新时间:2023-11-01 09:47:16 25 4
gpt4 key购买 nike

我想提一下我的小项目,以及我是否走上正轨。我需要处理来自 Medline ( http://www.nlm.nih.gov/bsd/licensee/2011_stats/baseline_doc.html) 的所有文章。对于那些不熟悉 Medline 数据库的人,我补充一点信息:

  • 大约有。 20.000.000 条记录(83.4 GB 磁盘空间),每条记录都有许多字段和子字段。
  • 您可以以 XML 格式下载此数据库(带许可证)。
  • 这 20M 的记录分布在 653 个文件中。
  • 每个文件都有一个 MedlineCitationSet,这是一组记录(MedlineCitation 的)。

我想对这些记录进行处理,得到title, abstract...等信息,于是想到用python和mongodb对这些文件(或记录)进行索引。我有一个选择:

我创建了一个 medline 解析器,并为每条记录创建了一个用于 mongoDB 的 JSON 条目,并在通过 pubmedID 建立索引之后。然后我可以创建一个像 get_abstract('pubmedID'):string 这样的函数。

我的问题是:

  • 这是个好主意吗? (XML 解析 --> JSON --> 插入和索引!)
  • 我可以使用 GridFS 并获取与每个文件的记录等效的 block 吗?怎么样?
  • 你知道其他方法吗?

最佳答案

Is it a good idea? (XML parsing --> JSON --> insert and indexing!)

有用吗? JSON 往往比 XML 更小,这可能是一个很好的改变。

Can I use GridFS and get chunks equivalents to records for each file? How?

GridFS 通常用于存储静态文件,如图像或视频。 MongoDB 可以支持非常大的文档(16MB == 几本小说)。 medline 文章的文本可能会比这小得多。

如果您只是打算存储文本,那么您应该不需要任何 GridFS。如果您想存储图像,那么 GridFS 非常适合执行此操作。

请继续阅读 GridFS here .请注意,GridFS 只是一个规范。所有内容仍存储在常规 MongoDB 集合中。


PS:看起来 pubmedID 是唯一键。创建文档时,您可以通过使用 pubmedID 覆盖 _id 来节省空间。

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

关于python - 使用 python 和 mongoDB 索引 20M 的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5869130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com