public void testPrefixQuery() throws Exception { this.addDocument("</computers>"); this.addDocument("</computers/mac>"); this.addDocument("</computers/windows>"); NodePrefixQuery query = new NodePrefixQuery(new Term(DEFAULT_TEST_FIELD, "/computers")); ScoreDoc[] hits = searcher.search(dq(query), null, 1000).scoreDocs; assertEquals("All documents in /computers category and below", 3, hits.length); query = new NodePrefixQuery(new Term(DEFAULT_TEST_FIELD, "/computers/mac")); hits = searcher.search(dq(query), null, 1000).scoreDocs; assertEquals("One in /computers/mac", 1, hits.length); query = new NodePrefixQuery(new Term(DEFAULT_TEST_FIELD, "/computers")); query.setNodeConstraint(1); hits = searcher.search(dq(query), null, 1000).scoreDocs; assertEquals("No documents in /computers category and below in node 1", 0, hits.length); query = new NodePrefixQuery(new Term(DEFAULT_TEST_FIELD, "/computers")); query.setNodeConstraint(0); hits = searcher.search(dq(query), null, 1000).scoreDocs; assertEquals("All documents in /computers category and below in node 0", 3, hits.length); }