我移植了一个大型数据库,其中包括一个大型客户数据库。客户订阅存储为XML文件。我导出了旧数据库并将所有这些导入到新数据库中。
通过氧气在旧数据库中的样本数据如下所示:
不涉及任何其他内容,如果我使用oXygen在新数据库中查看XML文件,我会看到这一点(我删除了一堆私有内容),但没有什么是真正错误的,只是没有像他们说的那样漂亮的打印:
现在,我对整个集合进行一个简单的查询,如下所示:
xquery version "3.0";
let $colcust := '/db/EIDO/data/Customers'
let $docnum := 'A01'
return count(collection($colcust)/customer/portal/specialty/document[@docnum = $docnum])
我得到692,这是完全正确的。这种情况有692次。完美的结果。
现在,我想做一些索引来改进这一点。所以我创造了这个:
<collection xmlns="http://exist-db.org/collection-config/1.0">
<index>
<range>
<create qname="user_id" type="xs:string"/>
<create qname="territory" type="xs:string"/>
<create qname="@name" type="xs:string"/>
<create qname="@docnum" type="xs:string"/>
<create qname="@subscribed" type="xs:string"/>
<create qname="lang" type="xs:string"/>
<create qname="title" type="xs:string"/>
<create qname="type" type="xs:string"/>
</range>
</index>
</collection>
我把它放在/system/config的适当位置。
我运行同样的查询。。。我得到“0”不是692次而是0次。
我把它放回去,现在我得到了4个。
我回到为备份创建的ZIP文件,打开它,果然,所有文件的换行都被删除了。所以这正是进口的。
我可能只需要创建一个将标识XSL应用于所有xml的xQuery,但这对我来说似乎是一次可怕的黑客攻击。这是已知的行为吗?如果是,是否有任何备份/还原设置不执行此操作或?