xquery 函数 return 匹配的文本先于其他文本出现

xquery function to return a matching text come up on top ahead of others

我正在尝试在我的数据库中的元素中搜索文本 "car race"。我的结果中返回了以下结果,我需要对结果进行排序,使 "car race" 排在第一位,因为它是完全匹配的,然后是其他结果,按升序排列。有什么方法可以将高分添加到 "car race" 结果条目?

第一场赛车
第二场赛车
第三场赛车
赛车
又是第一次赛车
第二次赛车比赛
第三次赛车比赛

如果您有元素的值如所列,您可以使用 boost query 来增加跨越整个元素的匹配的分数而不更改匹配:

cts:boost-query(
  cts:element-word-query(xs:QName("myelement"),"car race"),
  cts:element-value-query(xs:QName("myelement"),"car race"))

值查询显示 "the match must fill the whole element";提升说 "match the first query, add in scores from the second, if there is a match to that too".