我有標記的邏輯類似下面的返回集合中分頁匹配文檔的XQuery FLOWR搜索檢索字段值進行排序基於字段從marklogic搜索
let $options :=
<options xmlns="http://marklogic.com/appservices/search">
<transform-results apply="raw"/>
<additional-query>
{cts:collection-query("http://example.com/myCollectionName")}
</additional-query>
<sort-order direction="descending" >
<field name="myCustomFieldA" />
</sort-order>
<debug>true</debug>
</options>
for $searchResults in search:search("someQuery", $options, 1, 10)
return $searchResults
我有幾個自定義的字段設置具有包含字段範圍索引的文檔,我想檢索匹配文檔的字段中的值,而不是文檔本身。像下面這樣的東西?
for $searchResults in search:search("someQuery", $options, 1, 10)
return get-field-values($searchResults, ("myCustomFieldA", "myCustomFieldB"))
我將如何返回這些字段值?
這裏的問題是,'CTS:現場values'似乎拋出一個錯誤如果myCustomFieldA和myCustomFieldB是不同的類型。我認爲要真正實現我想要的輸出,就需要對每個字段的cts:field-values進行一次調用,到那個時候,獲取原始文檔並對其進行轉換可能更容易。 – alastairtree
如果您最終想要的內容都是來自索引的內容(如您的示例),那麼檢索文檔並轉換它可能會帶來更多的開銷。與cts:field-values()的兩個調用相比。另請參閱ehennum與搜索相關的答案:values() - - 其中可能使用cts:xxx-values函數。 –