gpt4 book ai didi

marklogic - Xquery 搜索选项中的自定义排序顺序

转载 作者:行者123 更新时间:2023-12-02 23:31:19 25 4
gpt4 key购买 nike

我正在编写用于搜索的 Rest 扩展,它接受在 JSON 嵌套文档中搜索的参数。我能够通过编写自定义约束来做到这一点,然后使用此自定义约束解析搜索文本并构建查询。

我们可以对排序顺序做同样的事情吗?顺便说一句,我的意思是我根据传递的参数构建搜索选项的排序顺序。

我在其中一个示例中看到,其中执行以下操作

let $options :=
<search:options>
<search:operator name="sort">
<search:state name="relevance">
<search:sort-order>
<search:score/>
</search:sort-order>
</search:state>
<search:state name="year">
<search:sort-order direction="descending" type="xs:gYear"
collation="">
<search:attribute ns="" name="year"/>
<search:element ns="http://marklogic.com/wikipedia"
name="nominee"/>
</search:sort-order>
<search:sort-order>
<search:score/>
</search:sort-order>
</search:state>
</search:operator>
</search:options>
return
search:search("lange sort:year", $options)

但即使在这里,也存在对要排序的字段进行硬编码的情况。我想做一些类似自定义约束的事情,在运行时我确定排序顺序列..

这可能吗?

最佳答案

嗯,在你给出的例子中,你提到它是硬编码的。在这种状态下,它只是 XML。您可以在此步骤之前使用编程逻辑来决定元素和排序顺序,并相应地构建 XML。下面的小示例对标题元素进行升序或降序排序。这个小例子应该可以帮助您了解您可以在更大范围内做什么。

let $sort-direction := "descending"

let $options :=
<search:options>
<search:operator name="sort">
<search:state name="relevance">
<search:sort-order>
<search:score/>
</search:sort-order>
</search:state>
<search:state name="year">
<search:sort-order direction="{$sort-direction}" type="xs:gYear"
collation="">
<search:attribute ns="" name="year"/>
<search:element ns="http://marklogic.com/wikipedia"
name="nominee"/>
</search:sort-order>
<search:sort-order>
<search:score/>
</search:sort-order>
</search:state>
</search:operator>
</search:options>
return
search:search("lange sort:year", $options)

关于marklogic - Xquery 搜索选项中的自定义排序顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35246655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com