私はこのようなXML文書を持っています。marklogicサーバーで異なる結果セットを取得
<Authors>
<Author>
<name>R.N Tagore</name>
<book>Gitanjli</book>
</Author>
<Author>
<name>Premchand</name>
<book>Panch Parameshvar</book>
</Author>
<Author>
<name>H.R Bacchan</name>
<book>Madhushala</book>
</Author>
<Author>
<name>Premchand</name>
<book>Gaban</book>
</Author>
<Author>
<name>Premchand</name>
<book>Nirmala</book>
</Author>
<Author>
<name>Premchand</name>
<book>Nirmala</book>
</Author>
</Authors>
上記のXMLから、私は著者名の明確なリストが必要です。個別の値()機能の異なる著者名をフィルタします:私は上記のコードは何をするか、のような
fn:distinct-values(cts:search(fn:doc()//pa:Author/pa:name,cts:and-query(())))
をクエリを書くことができます。このため
はそれは著者名の結果を取得し、その後、fnは、ありますその結果セットから。データが非常に高い場合にのみ、XMLでデータ6、しかし、letのは、我々がしようとしているため、クエリの50ラックの
cts:search(fn:doc()//pa:Author/pa:name,cts:and-query(()))
上記の部分はXDMP-EXPNTREECACHEFULL例外を与えるだろうと言うので、現在のシナリオでは、それが正常に動作しますメモリ内のlacの要素をキャッシュします。
cts:または検索:検索 APIを使用して、個別の著者名のみを取得するには、あなたの助けが必要です。最初に結果セットを取得してから、fn:distinct-values()を使用して、その結果セットから別のレコードを抽出する必要はありません。
ありがとう、