Refine search
@Test public void propertyExistenceQuery() throws Exception { Tree idx = createIndex("test1", of("propa", "propb")); idx.addChild(PROP_NODE).addChild("propa"); root.commit(); Tree test = root.getTree("/").addChild("test"); test.addChild("a").setProperty("propa", "a"); test.addChild("b").setProperty("propa", "c"); test.addChild("c").setProperty("propb", "e"); root.commit(); assertQuery("select [jcr:path] from [nt:base] where propa is not null", asList("/test/a", "/test/b")); }
@Test public void testStartRepMembersTree() throws Exception { init(true); Tree groupTree = createGroupTree(); Tree repMembers = groupTree.addChild("memberTree"); repMembers.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_MEMBERS); repMembers = repMembers.addChild("memberTree"); repMembers.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_MEMBERS); assertTrue(importer.start(repMembers)); }
Tree createUserTree() { Tree folder = root.getTree(getUserConfiguration().getParameters().getConfigValue(PARAM_USER_PATH, DEFAULT_USER_PATH)); Tree userTree = folder.addChild("userTree"); userTree.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_USER, Type.NAME); userTree.setProperty(JcrConstants.JCR_UUID, new UserProvider(root, ConfigurationParameters.EMPTY).getContentID(TEST_USER_ID)); return userTree; }
@Test public void testMultiAndEquals() throws Exception { Tree c = root.getTree("/").addChild("content"); c.addChild("one").setProperty("prop", "aaa"); c.addChild("two").setProperty("prop", ImmutableList.of("aaa", "bbb", "ccc"), Type.STRINGS); c.addChild("three").setProperty("prop", ImmutableList.of("aaa", "bbb"), Type.STRINGS); root.commit(); assertQuery("//*[(@prop = 'aaa' and @prop = 'bbb' and @prop = 'ccc')]", "xpath", ImmutableList.of("/content/two")); }
@Test public void testStartOtherChildInfo() throws Exception { init(true); Tree groupTree = createGroupTree(); Tree memberRefList = groupTree.addChild(REP_MEMBERS_LIST); memberRefList.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_MEMBER_REFERENCES_LIST); importer.start(memberRefList); importer.startChildInfo(createNodeInfo("memberRef", NodeTypeConstants.NT_OAK_UNSTRUCTURED), ImmutableList.of(createPropInfo(REP_MEMBERS, "member1"))); } }
Tree createSystemUserTree() { Tree folder = root.getTree(getUserConfiguration().getParameters().getConfigValue(PARAM_USER_PATH, DEFAULT_USER_PATH)); Tree userTree = folder.addChild("systemUserTree"); userTree.setProperty(JcrConstants.JCR_PRIMARYTYPE, NT_REP_SYSTEM_USER, Type.NAME); userTree.setProperty(JcrConstants.JCR_UUID, new UserProvider(root, ConfigurationParameters.EMPTY).getContentID(TEST_USER_ID)); return userTree; }
@Test public void testMultiNotEqual() throws Exception { Tree c = root.getTree("/").addChild("content"); c.addChild("one").setProperty("prop", "value"); c.addChild("two").setProperty("prop", ImmutableList.of("aaa", "value", "bbb"), Type.STRINGS); c.addChild("three").setProperty("prop", ImmutableList.of("aaa", "bbb", "ccc"), Type.STRINGS); root.commit(); assertQuery("//*[@prop != 'value']", "xpath", ImmutableList.of("/content/two", "/content/three")); }
@Test public void indexDefinitionBelowRoot2() throws Exception { Tree parent = root.getTree("/").addChild("test"); Tree idx = createIndex(parent, "test1", of("propa", "propb")); idx.setProperty(FulltextIndexConstants.EVALUATE_PATH_RESTRICTION, true); idx.addChild(PROP_NODE).addChild("propa"); root.commit(); Tree test = parent.addChild("test2").addChild("test3"); test.addChild("a").setProperty("propa", "a"); root.commit(); assertQuery("select [jcr:path] from [nt:base] as s where ISDESCENDANTNODE(s, '/test/test2') and propa = 'a'", asList("/test/test2/test3/a")); }
@Test public void testMultiAndLike() throws Exception { Tree c = root.getTree("/").addChild("content"); c.addChild("one").setProperty("prop", "aaaBoom"); c.addChild("two").setProperty("prop", ImmutableList.of("aaaBoom", "bbbBoom", "cccBoom"), Type.STRINGS); c.addChild("three").setProperty("prop", ImmutableList.of("aaaBoom", "bbbBoom"), Type.STRINGS); root.commit(); assertQuery("//*[(jcr:like(@prop, 'aaa%') and jcr:like(@prop, 'bbb%') and jcr:like(@prop, 'ccc%'))]", "xpath", ImmutableList.of("/content/two")); }
@Test public void indexDefinitionBelowRoot() throws Exception { Tree parent = root.getTree("/").addChild("test"); Tree idx = createIndex(parent, "test1", of("propa", "propb")); idx.setProperty(FulltextIndexConstants.EVALUATE_PATH_RESTRICTION, true); idx.addChild(PROP_NODE).addChild("propa"); root.commit(); Tree test = parent.addChild("test2"); test.addChild("a").setProperty("propa", "a"); root.commit(); assertQuery("select [jcr:path] from [nt:base] as s where ISDESCENDANTNODE(s, '/test') and propa = 'a'", asList("/test/test2/a")); }
@Test public void fulltextSearchWithCustomAnalyzer() throws Exception { Tree idx = createFulltextIndex(root.getTree("/"), "test"); TestUtil.useV2(idx); Tree anl = idx.addChild(LuceneIndexConstants.ANALYZERS).addChild(LuceneIndexConstants.ANL_DEFAULT); anl.addChild(LuceneIndexConstants.ANL_TOKENIZER).setProperty(LuceneIndexConstants.ANL_NAME, "whitespace"); anl.addChild(LuceneIndexConstants.ANL_FILTERS).addChild("stop"); Tree test = root.getTree("/").addChild("test"); test.setProperty("foo", "fox jumping"); root.commit(); assertQuery("select * from [nt:base] where CONTAINS(*, 'fox was jumping')", asList("/test")); }
private static void setup(Root root) throws Exception { Tree tree = root.getTree("/"); tree.addChild("c").setProperty("p", "base"); root.commit(); }
@Test public void orderByScore() throws Exception { Tree idx = createIndex("test1", of("propa")); idx.addChild(PROP_NODE).addChild("propa"); root.commit(); Tree test = root.getTree("/").addChild("test"); test.addChild("a").setProperty("propa", "a"); root.commit(); assertQuery("select [jcr:path] from [nt:base] where propa is not null order by [jcr:score]", asList("/test/a")); }
@Test public void indexDefinitionBelowRoot3() throws Exception { Tree parent = root.getTree("/").addChild("test"); Tree idx = createIndex(parent, "test1", of("propa")); idx.addChild(PROP_NODE).addChild("propa"); root.commit(); parent.setProperty("propa", "a"); parent.addChild("test1").setProperty("propa", "a"); root.commit(); //asert that (1) result gets returned correctly, (2) parent isn't there, and (3) child is returned assertQuery("select [jcr:path] from [nt:base] as s where ISDESCENDANTNODE(s, '/test') and propa = 'a'", asList("/test/test1")); }
@Test public void nativeQueries() throws Exception { Tree idx = createIndex("test1", of("propa", "propb")); idx.addChild(PROP_NODE).addChild("propa"); idx.setProperty(FulltextIndexConstants.FUNC_NAME, "foo"); root.commit(); Tree test = root.getTree("/").addChild("test"); test.addChild("a").setProperty("propa", "humpty"); test.addChild("b").setProperty("propa", "dumpty"); test.addChild("c").setProperty("propa", "humpy"); root.commit(); assertQuery("select [jcr:path] from [nt:base] where native('foo', 'propa:(humpty OR dumpty)')", asList("/test/a", "/test/b")); }
@Test(expected = CommitFailedException.class) public void oakIndexableFailing() throws IOException, CommitFailedException { registerNodeType(root, "oak3725-1.cnd"); Tree test = root.getTree("/").addChild("test"); test.setProperty(JCR_PRIMARYTYPE, NT_FOLDER, NAME); test.addChild("oak:index").setProperty(JCR_PRIMARYTYPE, NT_UNSTRUCTURED, NAME); root.commit(); }