Index: oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexAggregationTest2.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexAggregationTest2.java (date 1421738790000) +++ oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexAggregationTest2.java (revision ) @@ -145,7 +145,7 @@ } } } - + @Override protected void createTestIndexNode() throws Exception { Tree index = root.getTree("/"); @@ -168,6 +168,11 @@ originalInclude.setProperty(LuceneIndexConstants.AGG_RELATIVE_NODE, true); originalInclude.setProperty(LuceneIndexConstants.AGG_PATH, "jcr:content/renditions/original"); + Tree includeSingleRel = indexDefn.getChild(LuceneIndexConstants.AGGREGATES) + .getChild(NT_TEST_ASSET).addChild("includeFirstLevelChild"); + includeSingleRel.setProperty(LuceneIndexConstants.AGG_RELATIVE_NODE, true); + includeSingleRel.setProperty(LuceneIndexConstants.AGG_PATH, "firstLevelChild"); + //Include all properties Tree props = TestUtil.newRulePropTree(indexDefn, "test:Asset"); TestUtil.enableForFullText(props, "jcr:content/metadata/format"); @@ -324,6 +329,25 @@ root.commit(); assertQuery(statement, "xpath", Collections.emptyList()); setTraversalEnabled(true); + } + + @Test + public void indexSingleRelativeNode() throws Exception { + setTraversalEnabled(false); + final String statement = "//element(*, test:Asset)[ " + + "jcr:contains(firstLevelChild, 'summer') ]"; + + List expected = newArrayList(); + + Tree content = root.getTree("/").addChild("content"); + Tree page = content.addChild("pages"); + page.setProperty(JCR_PRIMARYTYPE, NT_TEST_ASSET, NAME); + Tree child = page.addChild("firstLevelChild"); + child.setProperty("tag", "summer is here", STRING); + root.commit(); + + expected.add("/content/pages"); + assertQuery(statement, "xpath", expected); }