性能改进 - 替代xquery中的地图

时间:2013-01-15 14:11:01

标签: xpath xquery bigdata marklogic

我正在使用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=”有一个很大的网址作为密钥。

当查询返回一个出现/结果时,它是好的。问题是当返回数百个结果时,性能变得更糟。这有什么替代方案吗?我只关心价值“0.289406”而不是大钥匙。

我可以直接将值单独输入任何xml元素,如: -

<doc>
 <valu>0.289406</valu>
 <valu>-0.23456</valu>
 <valu>0.3665</valu>
</doc>

而不是使用地图或任何迭代??

1 个答案:

答案 0 :(得分:0)

数以百计的结果应该没问题。我定期在地图上处理成千上万的结果。

所以我怀疑其他事情正在发生。如果您能够提出可重现的测试用例,则可能有人能够发现问题。