Perl-使用预缓存搜索许多xml文件-体系结构考虑

Perl-使用预缓存搜索许多xml文件-体系结构考虑,xml,perl,caching,search,Xml,Perl,Caching,Search,如何在多个XML文件中搜索/筛选?(200K文件,大约每个20-40KB大小)。这应该在web应用程序中完成,因此需要尽可能快的方法 不仅需要搜索指定的XML标记 但根据某些标记的内容过滤结果(例如,显示更新为timpestamp的文件) 或者在一些标记中使用全文,如此处的全文 数据必须在XML文件中(只能使用某种缓存) 思考工作解决方案: 因此,在超过200K个文件的周期中使用XML::Simple或XML::Twig之类的东西是很慢的 需要缓存它们以便快速访问-将所有XML文件转换为一

如何在多个XML文件中搜索/筛选?(200K文件,大约每个20-40KB大小)。这应该在web应用程序中完成,因此需要尽可能快的方法

不仅需要搜索指定的XML标记

  • 但根据某些标记的内容过滤结果(例如,显示更新为
    timpestamp
    的文件)
  • 或者在一些标记中使用全文,如
    此处的全文
  • 数据必须在XML文件中(只能使用某种缓存)
思考工作解决方案:

  • 因此,在超过200K个文件的周期中使用XML::Simple或XML::Twig之类的东西是很慢的
  • 需要缓存它们以便快速访问-将所有XML文件转换为一些“DB”(可能是NoSQL)
  • 我应该寻找和学习什么?MongoDB或其他什么东西在perl中对搜索/过滤任务有很好的支持
  • 我应该避免/注意什么以及需要注意什么

如何使用
XML::LibXML
读取文件,并使用
Storable
保存结果结构以创建缓存?读取可存储文件是否仍然太慢?

读取那么多文件总是很慢

你需要像搜索引擎那样索引这些文件


把它们全部读一遍,编制索引,将索引放入数据库,然后在它们发生变化时重新编制索引。

我不确定这一点,但我认为您正在寻找某种类型的索引


如果上述内容不符合您的需要,您可以随时解析新的/更新的XML,将它们作为索引文档存储在服务器中,当您的用户进行搜索时,根据它提供文档-它非常快速,可以顺利处理数百万个文档

阅读200K个文件在任何形式下都很慢,并用所有需要6+GB内存的XML文件构建一个大哈希…Thanx用于指针-将尝试使用XML数据库。斯芬克斯也是一个有趣的想法。