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

时间:2009-02-19 04:59:11

标签: c# asp.net xml search .net-2.0

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

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

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

5 个答案:

答案 0 :(得分:7)

首先:xml文件有多大? XmlDocument不会扩展为“巨大”......但可以处理“大”确定。

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

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

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

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

非常容易和直接使用。

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

答案 4 :(得分:0)

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