【发布时间】:2013-01-15 14:11:01
【问题描述】:
我正在使用cts:element-value-co-occurences 进行查询,该查询返回大量值。由于我提供了“map”作为选项,因此这些事件被复制到地图中(下面给出了一个示例)。
为查询返回的地图
map:map(
<map:map xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:map="http://marklogic.com/xdmp/map">
<map:entry key="doc">
<map:value xsi:type="map:map">
<map:map>
<map:entry key="/data/fb/www.abcdefgh.com#form123456665364#thread123456968765#post987986513213_65434360536840613_66445444">
<map:value xsi:type="xs:float">0.289406</map:value>
</map:entry>
</map:map>
</map:value>
</map:entry>
</map:map>
)
如您所见,我的映射键是“doc”,返回的出现被复制到此键“doc”中,为sub-map。
子地图的“<map:entry key=”有一个大的URL作为key。
当查询返回一个事件/结果时,它很好。问题是当返回数百个结果时,性能变得非常糟糕。有没有其他选择?我只关心值“0.289406”而不是大键。
我可以直接将值单独获取到任何 xml 元素中吗:-
<doc>
<valu>0.289406</valu>
<valu>-0.23456</valu>
<valu>0.3665</valu>
</doc>
而不是使用地图或任何迭代??
【问题讨论】:
-
请发布一些示例数据以供使用。
-
err.. 上面的地图是从数据库中获取的,它是样本。 $doc-map:=cts:element-value-co-occurences("xdmp:document",..,"map","collation",$query) 为查询从 db 中获取了上述地图。
标签: xpath xquery bigdata marklogic