這裏有很多評論,沒有人對MarkLogic Server XML數據庫有太多的瞭解,以及在應用多種類型的索引(元素,值,屬性,xml結構,xml節點順序,詞,短語索引)
MarkLogic可以存儲/索引數十億的XML文檔,並允許亞秒在所有移動搜索,複雜SUM COUNT MIN MAX操作等
我已經用於關係的XML文件C#.NET LINQ到XML來實現原始海報想要實現的內容。 (無MarkLogic在這一點上,只是簡單的XML文件,並且將它們串聯在一起,實現C#LINQ代碼的任何類型的搜索我找的),你可能有接觸的XML文件:
<contacts>
<contact id="1" companyid="1">
<name></name>
<address></address>
<city></city>
<state></state>
</contact>
</contacts>
您可能還想加入這個到另一個XML文件的公司:
<companies>
<company id="1">
<name></name>
<address></address>
<city></city>
<state></state>
<company>
</companies>
下面是一些示例C#.NET的LINQ到XML的語法來實現做一個LEFT OUTER這兩個文件之間的連接:
using System.Xml.Linq.XDocument
XDocument xDocContacts = XDocument.Load("contacts.xml");
XDocument xDocCompanies = XDocument.Load("companies.xml");
var results = from ct in xDocContacts.Root.Element("contacts").Elements("contact")
join cp in xDocCompanies.Root.Element("companies").Elements("company")
on ct.Attribute("companyid").Value.ToString() equals cp.Attribute("id").Value.ToString()
into joined
select joined.DefaultIfEmpty();
foreach (var item in joinedResults)
{
}
我使用了90MB的XML文件加入4-5MB的較小XML文件,並且可以在2-3秒範圍內使用多個WHERE條件執行復雜搜索。
數據庫用於存儲**數據,XML對於交換**數據非常有用 - 不是一回事。不要使用其他的目的... – 2010-07-27 21:16:45
@marc_s +1好說! – Skilldrick 2010-07-27 21:22:35
@ marc_2雖然我將其修改爲「管理數據」XML,或者任何格式都可以存儲數據。實際上做數據雖然可以得到...我認爲技術術語是「icky」;) – mezmo 2010-07-28 13:43:35