使用python和mongoDB索引2000万条记录

使用python和mongoDB索引2000万条记录,python,mongodb,pymongo,gridfs,Python,Mongodb,Pymongo,Gridfs,我想谈谈我的小项目,如果我走上正轨的话。我需要使用Medline()中的所有文章。对于那些不熟悉Medline数据库的人,我添加了一些信息: 大约有20.000.000条记录(83.4 GB磁盘空间),每个记录都有许多字段和子字段 您可以下载XML格式的此DB(带许可证) 这2000万条记录分布在653个文件中 每个文件都有一个Medline引文集,这是一组记录(Medline引文) 我想处理这些记录并获得诸如标题、摘要等信息。。。然后我想用python和mongodb为这些文件(或记录)编

我想谈谈我的小项目,如果我走上正轨的话。我需要使用Medline()中的所有文章。对于那些不熟悉Medline数据库的人,我添加了一些信息:

  • 大约有20.000.000条记录(83.4 GB磁盘空间),每个记录都有许多字段和子字段
  • 您可以下载XML格式的此DB(带许可证)
  • 这2000万条记录分布在653个文件中
  • 每个文件都有一个Medline引文集,这是一组记录(Medline引文)
我想处理这些记录并获得诸如标题、摘要等信息。。。然后我想用python和mongodb为这些文件(或记录)编制索引。我有一个选择:

我已经创建了一个medline解析器,并为每个记录创建了一个用于mongoDB的JSON条目,然后由pubmedID索引。然后我可以创建一个函数,比如get_abstract('pubmedID'):string

我的问题是:

  • 这是个好主意吗?(XML解析-->JSON-->插入和索引!)
  • 我可以使用GridFS并为每个文件获取与记录等价的块吗?怎么做
  • 你知道另一条路吗
这是个好主意吗?(XML解析-->JSON-->插入和索引!)

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

我可以使用GridFS并为每个文件获取与记录等价的块吗?怎么做

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

如果您只是计划存储文本,那么就不需要任何GridFS。如果您想存储图像,那么GridFS非常有用

请仔细阅读。请注意,GridFS只是一个规范。所有内容仍然存储在常规MongoDB集合中


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


i、 e.:
collection.insert({“\u id”:xml\u obj.pubmedID,“text”:xml\u obj.article\u text})

它有效吗?那就好了。你有什么问题吗?如果是,请提供您遇到的实际问题。听起来你真正的问题很简单——如何使用GridFS。也许你应该特别关注你需要什么样的帮助。“你知道另一种方法吗”是一个愚蠢的问题,有无数种其他方法,其中大多数都是一个坏主意。谢谢S.洛特!是的,我的exatc问题是,如何将GridFS与Medline文件结合起来?我的XML2JSON解析器有问题,因为这个XML并不简单,我不知道GridFS是否能帮助我……Àlex:这听起来像两个独立的问题,只是与这个问题有点关联。在问其他问题之前,请尽可能多地阅读GridFS,并尽可能具体地问一个关于将GridFS与Medline文件一起使用的问题。所有软件都可以集成;你需要做大量的阅读,以便你可以为我们提供一些指导和方向,你想如何继续。“我的XML2JSON解析器的问题”毫无意义且令人困惑。你到底有什么问题?请非常、非常具体,并包括导致实际问题的实际代码。
我想处理这些记录并获取标题、摘要等信息。
-听起来您需要的是elasticsearch,而不是mongodb。