问题

我的要求是使用谓词在MarkLogic中创建Path Range Index.

使用这个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创建路径范围索引.

我们可以使用Path Range Index实现这一目标吗?

  最佳答案

简短的答案是肯定的,您可以创建这样的路径索引.但是,退一步.您希望从创建这样的索引中获得什么?您可以使用该路径创建一个路径字段,这意味着您可以搜索具有高分的学生的第一个名称.您可以在这个上面放置一个范围索引,这意味着您可以获得高分学生的第一个名称.然后如果您希望对于低分学生而言,您必须创建另一个字段.手中的第一个名称不会让您访问完整的学生更多的性能:您仍然需要每次提取整个课程.

如果您需要问个别学生的问题,很可能真的想创建一个更清洁的 1-object/1-document 数据模型。

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

  相同标签的其他问题

marklogicmarklogic-8marklogic-9