2009-02-19 46 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文件裏面的內容快速搜索(全取決於你如何組織你的緩存)。

非常簡單直接的使用。

比試圖通過一堆文件循環要容易得多。

相關問題