Search in sources :

Example 66 with QueryResult

use of javax.jcr.query.QueryResult in project jackrabbit by apache.

the class JoinTest method testJoinWithOR4.

public void testJoinWithOR4() throws Exception {
    StringBuilder join = new StringBuilder("SELECT a.* FROM [nt:unstructured] AS a");
    join.append("  INNER JOIN [nt:unstructured] AS b ON b.[jcr:uuid] = a.testref ");
    join.append("  WHERE  ");
    join.append("  a.type = 'child' ");
    join.append("  AND (");
    join.append("    CONTAINS(a.*, 'testJoinWithOR4')  ");
    join.append("    OR ");
    join.append("    b.type = 'parent' ");
    join.append("    AND ");
    join.append("    CONTAINS(b.*, 'testJoinWithOR4') ");
    join.append("  )");
    Query q = qm.createQuery(join.toString(), Query.JCR_SQL2);
    QueryResult result = q.execute();
    checkResult(result, 2);
}
Also used : QueryResult(javax.jcr.query.QueryResult) Query(javax.jcr.query.Query)

Example 67 with QueryResult

use of javax.jcr.query.QueryResult in project jackrabbit by apache.

the class DerefTest method testDerefToVersionNode.

/**
     * Checks if jcr:deref works when dereferencing into the version storage.
     */
public void testDerefToVersionNode() throws RepositoryException {
    Node referenced = testRootNode.addNode(nodeName1);
    referenced.addMixin(mixVersionable);
    testRootNode.save();
    Version version = referenced.checkin();
    Node referencedVersionNode = version.getNode(jcrFrozenNode);
    Node referencer = testRootNode.addNode(nodeName2);
    referencer.setProperty(propertyName1, referencedVersionNode);
    testRootNode.save();
    String query = "/" + testRoot + "/*[@" + propertyName1 + "]/jcr:deref(@" + propertyName1 + ",'*')";
    QueryManager qm = superuser.getWorkspace().getQueryManager();
    Query q = qm.createQuery(query, Query.XPATH);
    QueryResult qr = q.execute();
    NodeIterator ni = qr.getNodes();
    assertEquals("Must find one result in query", 1, ni.getSize());
    while (ni.hasNext()) {
        Node node = (Node) ni.next();
        assertTrue(node.getProperty("jcr:frozenUuid").getString().equals(referenced.getUUID()));
    }
}
Also used : NodeIterator(javax.jcr.NodeIterator) QueryResult(javax.jcr.query.QueryResult) Query(javax.jcr.query.Query) Version(javax.jcr.version.Version) Node(javax.jcr.Node) QueryManager(javax.jcr.query.QueryManager)

Example 68 with QueryResult

use of javax.jcr.query.QueryResult in project jackrabbit by apache.

the class ExcerptTest method testQuotedPhraseNoMatch.

/**
     * Verifies excerpt generation on a node property that does not contain any
     * excerpt info for a quoted phrase
     */
public void testQuotedPhraseNoMatch() throws RepositoryException {
    String text = "one two three four";
    String excerpt = createExcerpt("one two three four");
    String terms = "\"five six\"";
    Node n = testRootNode.addNode(nodeName1);
    n.setProperty("text", text);
    n.setProperty("other", terms);
    superuser.save();
    String stmt = getStatement(terms);
    QueryResult result = executeQuery(stmt);
    RowIterator rows = result.getRows();
    assertEquals(1, rows.getSize());
    String ex = rows.nextRow().getValue("rep:excerpt(text)").getString();
    assertEquals("Expected " + excerpt + ", but got ", excerpt, ex);
}
Also used : QueryResult(javax.jcr.query.QueryResult) Node(javax.jcr.Node) RowIterator(javax.jcr.query.RowIterator)

Example 69 with QueryResult

use of javax.jcr.query.QueryResult in project jackrabbit by apache.

the class ExcerptTest method testQuotedPhraseNoMatchScrambled.

/**
     * 
     * Verifies excerpt generation on a node property that contains the exact
     * quoted phrase but with scrambled words.
     * 
     * More clearly it actually checks that the order of tokens is respected for
     * a quoted phrase.
     */
public void testQuotedPhraseNoMatchScrambled() throws RepositoryException {
    String text = "one two three four";
    String excerpt = createExcerpt("one two three four");
    String terms = "\"three two\"";
    Node n = testRootNode.addNode(nodeName1);
    n.setProperty("text", text);
    n.setProperty("other", terms);
    superuser.save();
    String stmt = getStatement(terms);
    QueryResult result = executeQuery(stmt);
    RowIterator rows = result.getRows();
    assertEquals(1, rows.getSize());
    String ex = rows.nextRow().getValue("rep:excerpt(text)").getString();
    assertEquals("Expected " + excerpt + ", but got ", excerpt, ex);
}
Also used : QueryResult(javax.jcr.query.QueryResult) Node(javax.jcr.Node) RowIterator(javax.jcr.query.RowIterator)

Example 70 with QueryResult

use of javax.jcr.query.QueryResult in project jackrabbit by apache.

the class ExcerptTest method testMatchMultipleNonMatchingTokens.

/**
     * <p>
     * Test when there are multiple tokens that match the fulltext search (which
     * will generate multiple lucene terms for the highlighter to use) in the
     * repository but not all of them are present in the current property.
     * </p>
     * 
     */
public void testMatchMultipleNonMatchingTokens() throws RepositoryException {
    String text = "lorem ipsum";
    String fragmentText = "lorem <strong>ipsum</strong>";
    String terms = "ipsu*";
    String excerpt = createExcerpt(fragmentText);
    // here we'll add more matching garbage data so we have more tokens
    // passed to the highlighter
    Node parent = testRootNode.addNode(nodeName1);
    Node n = parent.addNode("test");
    n.setProperty("text", text);
    testRootNode.addNode(nodeName2).setProperty("foo", "ipsuFoo");
    testRootNode.addNode(nodeName3).setProperty("bar", "ipsuBar");
    superuser.save();
    // --
    String stmt = testPath + "/" + nodeName1 + "//*[jcr:contains(., '" + terms + "')]/rep:excerpt(.)";
    QueryResult result = executeQuery(stmt);
    RowIterator rows = result.getRows();
    assertEquals(1, rows.getSize());
    assertEquals(excerpt, getExcerpt(rows.nextRow()));
}
Also used : QueryResult(javax.jcr.query.QueryResult) Node(javax.jcr.Node) RowIterator(javax.jcr.query.RowIterator)

Aggregations

QueryResult (javax.jcr.query.QueryResult)202 Node (javax.jcr.Node)109 Query (javax.jcr.query.Query)98 QueryManager (javax.jcr.query.QueryManager)55 NodeIterator (javax.jcr.NodeIterator)52 RowIterator (javax.jcr.query.RowIterator)46 Session (javax.jcr.Session)36 Test (org.junit.Test)32 Row (javax.jcr.query.Row)21 AbstractRepositoryTest (org.apache.jackrabbit.oak.jcr.AbstractRepositoryTest)21 RepositoryException (javax.jcr.RepositoryException)15 JackrabbitSession (org.apache.jackrabbit.api.JackrabbitSession)15 FacetResult (org.apache.jackrabbit.oak.query.facet.FacetResult)9 Value (javax.jcr.Value)8 NoSuchElementException (java.util.NoSuchElementException)7 ArrayList (java.util.ArrayList)6 ValueFactory (javax.jcr.ValueFactory)6 InvalidItemStateException (javax.jcr.InvalidItemStateException)5 JackrabbitQueryResult (org.apache.jackrabbit.api.query.JackrabbitQueryResult)5 TreeSet (java.util.TreeSet)4