如何在路径范围索引中使用谓词

问题描述 投票:1回答:1

我的要求是在MarkLogic中使用谓词创建路径范围索引

采用此XML-

<class>
       <student rollno = "393">
          <firstname>shivling</firstname>
          <lastname>Bhandare</lastname>
          <marks>85</marks>
       </student>
       <student rollno = "493">
          <firstname>abc</firstname>
          <lastname>pqr</lastname>
          <marks>95</marks>
       </student>
  </class>

这里我想用谓词/class/student[marks gt 80]/firstname为xpath创建路径范围索引。

我们可以使用路径范围索引实现吗?

marklogic marklogic-8 marklogic-9
1个回答
2
投票
简短的答案是,您可以创建一个这样的路径索引。但是,请后退一点。您希望从创建这样的索引中获得什么?您可以使用该路径创建一个路径字段,这意味着您可以搜索分数较高的学生的名字。您可以在其上放一个范围索引,这意味着您可以得到分数较高的学生的名字。然后,如果您希望分数较低的学生也能做到这一点,则必须另辟field径。而且拥有名头并不能使整个学生都表现得更好:您仍然每次都需要全班参加。

[如果您需要提出有关个别学生的问题,您很可能真的想创建一个更简洁的1对象/ 1文档数据模型。这样一来,您就无需获得高分学生的特殊途径,只需要分数的范围索引即可,您可以将其作为一个简单的查询,然后从结果中挑选出想要的东西,例如

cts:search(/student, cts:element-range-query(xs:QName("marks"), ">", 80) )/firstname

© www.soinside.com 2019 - 2024. All rights reserved.