我的要求是在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创建路径范围索引。
我们可以使用路径范围索引来实现这一目标吗?
答案 0 :(得分:4)
简短的回答是,您可以创建一个这样的路径索引。但是,请后退一点。您希望从创建这样的索引中获得什么?您可以使用该路径创建一个路径字段,这意味着您可以搜索分数较高的学生的名字。您可以在其上放一个范围索引,这意味着您可以得到分数较高的学生的名字。然后,如果您希望分数较低的学生也能做到这一点,则必须另辟field径。而且拥有名头并不能使整个学生都表现得更好:您仍然每次都需要全班参加。
如果您需要询问有关个别学生的问题,您很可能真的想创建一个更简洁的1对象/ 1文档数据模型。这样一来,您就无需获得高分学生的特殊途径,只需要分数的范围指数即可,您可以将其作为一个简单的查询,然后从结果中选择想要的东西,例如
import java.util.Random;
public class Monster {
// Monster properties
private String name;
private int health;
private int damage;
// Random damage points that vary from 1 to 5
int randomDamagePoints = (int)(Math.random() * 1 + 5);
// Constructor
public Monster(String name, int health, int damage) {
this.name = "Monster";
this.health = 50;
this.damage = 2;
}
// Opponent attacks Monster 1 - Player
public void AttackPlayer(Monster player) {
while(health > 0) {
// Part I need help with
}
}
// Player attacks Monster 2 - Opponent
public void AttackOpponent(Monster opponent) {
while(health > 0) {
// Part I need help with
}
}
}