2009-02-19 51 views
1

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

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

我们的应用程序是一个.net 2.0 web应用程序。

回答

5

第一:xml文件有多大? XmlDocument不会缩放到“巨大”......但可以处理“大”OK。

二:你可以或许把数据放到常规数据库结构(也许SQL Server速成版),通过普通TSQL指数它,并获得?这通常会执行xpath搜索。同样的,如果它的结构,SQL Server 2005和以上支持xml数据类型,其中碎片数据 - 这可以让你在数据库索引和查询XML数据,而无需在内存中的整个DOM(它转换的XPath为关系查询)。

+0

我第二个这个。在db中折腾这些信息。当然可能需要一些时间,但这是他们的目的。 – 2009-02-19 05:05:10

1

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

1

嗯,听起来像你构建基于XML的顶部数据库,性能我会读这些文件到您选择的数据库,并让它处理索引和搜索你。如果这不是一个真正用XPath的选项,或者使用XmlReader进行自己的穷举搜索。

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

0

为什么不将可搜索的数据存储在数据库表中,并使用实际文件的关键字?所以你的搜索将在数据库表而不是xml文件。我想这会更快,因为你可以索引表以加快搜索速度。

1

索引你的XML文件。考虑http://incubator.apache.org/lucene.net/

最近,我用它在我以前的工作缓存我们的SQL数据库进行快速搜索和非常小的开销。

它提供的XML文件里面的内容快速搜索(全取决于你如何组织你的缓存)。

非常简单直接的使用。

比试图通过一堆文件循环要容易得多。

相关问题