query.setNodeConstraint(range[0], range[1]);
tq.setNodeConstraint(3); tq.addDescendant(2, new NodeTermQuery(new Term("field", "value")), Occur.MUST); q = (NodeQuery) tq.rewrite(null);
query.setNodeConstraint(this.getLowerBound(), this.getUpperBound());