[英]Unexpected behavior shown by search:search in marklogic
我正在使用search:search
搜索以下類型的結構:
search:search(
"",
<options>
<additional-query>
{
cts:and-query((
cts:collection-query("A"),
cts:not-query(cts:collection-query("B")),
cts:not-query(cts:collection-query("C")),
cts:and-query((
cts:element-value-query(
xs:QName("uri"),
cts:search(collection("A"),
cts:element-value-query(xs:QName("uri"),
cts:search(collection("B"),
cts:element-value-query(xs:QName("uri"),
cts:search(collection("C"),cts:word-query("Hello"))/fn:base-uri()
)
)/fn:base-uri()
)
)/fn:base-uri()
),
dls:documents-query()
))
))
}
</additional-query>
</options>,1,10)
結果為0。
但是,如果我嘗試這樣做,它會提供所需的結果
let $a :=
cts:search(collection("A"),
cts:element-value-query(xs:QName("uri"),
cts:search(collection("B"),
cts:element-value-query(xs:QName("uri"),
cts:search(collection("C"),cts:word-query("Hello"))/fn:base-uri()
)
)/fn:base-uri()
)
)/fn:base-uri()
return
search:search(
"",
<options>
<additional-query>
{
cts:and-query((
cts:collection-query("A"),
cts:not-query(cts:collection-query("B")),
cts:not-query(cts:collection-query("C")),
cts:and-query((
cts:element-value-query(
xs:QName("uri"),
$a
),
dls:documents-query()
))
))
}
</additional-query>
</options>, 1, 10)
它解決了將某些部分取出然后傳遞給search:search
選項的問題。 請調查並提供幫助
您不能將cts:query
直接嵌入search:options
。
相反,請嘗試:
<search:options>
<search:additional-query>{...your cts:query here ...}</search:additional-query>
</search:options>
有關更多信息,請參見:
http://docs.marklogic.com/guide/rest-dev/appendixb#id_98507
另外,如果要使用子查詢來檢索用作標准的值,則應在作為值源和查詢目標的元素上創建范圍索引,並使用cts:values()
詞典查找。 有關更多信息,請參見:
http://docs.marklogic.com/cts:values
希望能有所幫助,
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.