marklogic - 使用不同的值
marklogic - use distinct-values
我尝试从文档中获取不同的值。但它总是 return 重复值。
for $uri in cts:uris((),
(),
cts:and-query(
cts:collection-query("/citation/company")
)
)[1 to 1000]
return distinct-values( doc($uri)/PerformingOrganizations/Name)
result:
EARTH RESEARCH LLC
EARTH RESEARCH LLC
EARTH RESEARCH LLC
EARTH RESEARCH LLC
EARTH RESEARCH LLC
为什么 distinct-values returns 重复值?我怎样才能得到结果消除重复值。提前致谢。
您在迭代器范围内调用 distinct-values
,因此每 $uri
调用一次。首先收集您的值序列,然后为所有值调用一次 distinct-values
。
let $values :=
for $uri in cts:uris((), 'limit=1000',
cts:and-query(cts:collection-query("/citation/company")))
return doc($uri)/PerformingOrganizations/Name
return distinct-values($values)
此外,cts:uris
是一个词典函数,它将 return 索引中的每个结果,除非特别受选项参数限制。限制使用谓词将导致词典调用 returning all 首先,序列将被限制为前 1000 个。使用选项来限制将导致在函数中只 returning 前 1000 个结果。对于具有很多值的索引,不使用这些选项会导致性能问题。
希望这篇 XQuery 对您有所帮助。试试这个。
let $uris := cts:uri-match(('*.xml'),(),cts:collection-query("/citation/company"))
let $name := for $uri in $uris
return doc($uri)/PerformingOrganizations/Name/text()
return fn:distinct-values($name)
我尝试从文档中获取不同的值。但它总是 return 重复值。
for $uri in cts:uris((),
(),
cts:and-query(
cts:collection-query("/citation/company")
)
)[1 to 1000]
return distinct-values( doc($uri)/PerformingOrganizations/Name)
result:
EARTH RESEARCH LLC
EARTH RESEARCH LLC
EARTH RESEARCH LLC
EARTH RESEARCH LLC
EARTH RESEARCH LLC
为什么 distinct-values returns 重复值?我怎样才能得到结果消除重复值。提前致谢。
您在迭代器范围内调用 distinct-values
,因此每 $uri
调用一次。首先收集您的值序列,然后为所有值调用一次 distinct-values
。
let $values :=
for $uri in cts:uris((), 'limit=1000',
cts:and-query(cts:collection-query("/citation/company")))
return doc($uri)/PerformingOrganizations/Name
return distinct-values($values)
此外,cts:uris
是一个词典函数,它将 return 索引中的每个结果,除非特别受选项参数限制。限制使用谓词将导致词典调用 returning all 首先,序列将被限制为前 1000 个。使用选项来限制将导致在函数中只 returning 前 1000 个结果。对于具有很多值的索引,不使用这些选项会导致性能问题。
希望这篇 XQuery 对您有所帮助。试试这个。
let $uris := cts:uri-match(('*.xml'),(),cts:collection-query("/citation/company"))
let $name := for $uri in $uris
return doc($uri)/PerformingOrganizations/Name/text()
return fn:distinct-values($name)