在xml文件中搜索数据的最佳方法?

在我们的新项目中,我们必须提供搜索function,以从数百个xml文件中检索数据。 我在下面简要介绍了我们当前的计划,我想知道您对此的建议/改进。

这些xml文件包含个人信息,搜索基于其中的10个元素,例如姓氏,名字,电子邮件等。我们当前的计划是创建一个包含所有可搜索数据和实际文件密钥的主XmlDocument。 因此,当用户搜索数据时,我们首先查看主文件并获取结果。 我们还将从最近的搜索中缓存实际的xml文件,以便稍后进行simillar搜索可以快速处理。

我们的应用程序是.net 2.0 Web应用程序。

第一:xml文件有多大? XmlDocument不会扩展为“巨大”……但可以处理“大”OK。

第二:您可以将数据放入常规数据库结构(可能是SQL Server Express Edition),索引它,并通过常规TSQL访问吗? 这通常会超出xpath搜索范围。 同样,如果它是结构化的,SQL Server 2005及更高版本支持xml数据的xml数据类型 – 这允许您在数据库中索引和查询xml数据,而不必将整个DOM放在内存中(它将xpath转换为关系查询) 。

如果您可以将数据存储在SQL Server数据库中,那么您可以在内置的XPath查询function中使用SQL Server。

嗯,听起来像是在Xml顶部构建一个数据库,为了提高性能,我会将这些文件读入你选择的数据库中,让它处理索引并搜索你。 如果这不是一个选项,可以使用XPath,或使用XmlReader滚动自己的详尽搜索。

Xml不是每个问题的答案,但无论它看起来多么干净,性能都会很糟糕。

索引XML文件。 查看http://incubator.apache.org/lucene.net/

我最近在我以前的工作中使用它来缓存我们的SQL数据库,以便快速搜索并且开销很小。

它提供了对xml文件内部内容的快速搜索(所有这些都取决于您组织缓存的方式)。

非常容易和直接使用。

比试图遍历一堆文件容易得多。

为什么不将可搜索的数据存储在具有实际文件密钥的数据库表中? 所以你的搜索将在数据库表而不是xml文件。 我想这会更快,因为你可以索引表格以便更快地搜索。