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);
}
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()));
}
}
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);
}
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);
}
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()));
}
Aggregations