首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >有没有一种方法可以根据MarkLogic 8中的相关性评分对SPARQL查询结果进行排序?

有没有一种方法可以根据MarkLogic 8中的相关性评分对SPARQL查询结果进行排序?
EN

Stack Overflow用户
提问于 2017-02-24 20:42:21
回答 1查看 516关注 0票数 1

我们正在对MarkLogic服务器中的一些临床本体数据运行SPARQL查询。我们的查询如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX cts: <http://marklogic.com/cts#>

SELECT *
FROM <http://example/ontologies/snomedct>
WHERE {
  ?s rdfs:label ?o .
  FILTER cts:contains(?o, cts:word-query("Smoke*", "wildcarded"))
}
LIMIT 10

我们期望得到基于相关评分的排序结果,但结果似乎是随机的。在查询中尝试了许多方法,但都没有效果。经过一些研究,我们在MarkLogic文档中找到了这样的语句:

当理解表达式返回的顺序时,有两个主要规则需要考虑:

  • cts:搜索表达式总是按关联顺序返回(最相关的是最不相关的)。
  • XPath表达式总是按文档顺序返回。

这是否意味着cts: in是一个始终按文档顺序返回的XPath表达式?如果是这样的话,我们如何构造一个按关联顺序返回的SPARQL查询?

谢谢,凯文

EN

回答 1

Stack Overflow用户

发布于 2017-02-24 22:10:14

在您所使用的示例中,您使用的语言是SPARQL --带有cts:contains的片段筛选器。

在本例中,cts:contains仅用于隔离匹配的片段ID,从而过滤SPARQL查询中使用的候选文档。因此,我认为没有考虑到反恐战略的相关性。

但是,您可能会以另一种方式获得正在寻找的结果:对所讨论的文档执行实际的cts:搜索,然后使用cts:triple查询对它们进行筛选。

https://docs.marklogic.com/cts:triple-range-query

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42447920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档