Search in sources :

Example 21 with Result

use of org.apache.jackrabbit.oak.api.Result in project jackrabbit-oak by apache.

the class ExcerptTest method nonIndexedRequestedPropExcerpt.

@Test
public void nonIndexedRequestedPropExcerpt() throws Exception {
    Tree contentRoot = root.getTree("/").addChild("testRoot");
    contentRoot.setProperty("foo", "fox");
    contentRoot.setProperty("baz", "is fox ifoxing");
    root.commit();
    String query = "SELECT [rep:excerpt(baz)] FROM [nt:base] WHERE CONTAINS(*, 'fox')";
    Result result = executeQuery(query, SQL2, NO_BINDINGS);
    Iterator<? extends ResultRow> resultIter = result.getRows().iterator();
    assertTrue(resultIter.hasNext());
    ResultRow firstRow = resultIter.next();
    PropertyValue nodeExcerpt = firstRow.getValue("rep:excerpt(baz)");
    assertNull("rep:excerpt(baz) if requested explicitly must be indexed to be evaluated", nodeExcerpt);
}
Also used : ResultRow(org.apache.jackrabbit.oak.api.ResultRow) Tree(org.apache.jackrabbit.oak.api.Tree) PropertyValue(org.apache.jackrabbit.oak.api.PropertyValue) Result(org.apache.jackrabbit.oak.api.Result) Test(org.junit.Test) AbstractQueryTest(org.apache.jackrabbit.oak.query.AbstractQueryTest)

Example 22 with Result

use of org.apache.jackrabbit.oak.api.Result in project jackrabbit-oak by apache.

the class HybridIndexTest method paging.

@Test
public void paging() throws Exception {
    String idxName = "hybridtest";
    Tree idx = createIndex(root.getTree("/"), idxName, Collections.singleton("foo"));
    TestUtil.enableIndexingMode(idx, IndexingMode.SYNC);
    root.commit();
    runAsyncIndex();
    createTestData("/content", LucenePropertyIndex.LUCENE_QUERY_BATCH_SIZE * 2);
    runAsyncIndex();
    String query = "select [jcr:path] from [nt:base] where [foo] = 'bar'";
    Result result = executeQuery(query, SQL2, NO_BINDINGS);
    Iterator<? extends ResultRow> itr = result.getRows().iterator();
    int count = 0;
    for (int i = 0; i < LucenePropertyIndex.LUCENE_QUERY_BATCH_SIZE - 10; i++) {
        assertTrue(itr.hasNext());
        itr.next();
        count++;
    }
    createTestData("/content2", 5);
    LogCustomizer lc = LogCustomizer.forLogger(LucenePropertyIndex.class.getName()).filter(Level.WARN).create();
    lc.starting();
    int size = Iterators.size(itr);
    if (!lc.getLogs().isEmpty()) {
        fail(lc.getLogs().toString());
    }
    lc.finished();
    int totalSize = LucenePropertyIndex.LUCENE_QUERY_BATCH_SIZE * 2 + 5;
    assertEquals(totalSize, count + size);
}
Also used : LucenePropertyIndex(org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex) LogCustomizer(org.apache.jackrabbit.oak.commons.junit.LogCustomizer) Tree(org.apache.jackrabbit.oak.api.Tree) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) Result(org.apache.jackrabbit.oak.api.Result) Test(org.junit.Test) AbstractQueryTest(org.apache.jackrabbit.oak.query.AbstractQueryTest)

Example 23 with Result

use of org.apache.jackrabbit.oak.api.Result in project jackrabbit-oak by apache.

the class ContentRemoteResultsTest method testGetTotal.

@Test
public void testGetTotal() {
    Result result = mock(Result.class);
    doReturn(42L).when(result).getSize();
    assertEquals(42L, createContentRemoteResults(result).getTotal());
}
Also used : Result(org.apache.jackrabbit.oak.api.Result) Test(org.junit.Test)

Example 24 with Result

use of org.apache.jackrabbit.oak.api.Result in project jackrabbit-oak by apache.

the class ContentRemoteResultsTest method testGetSelectors.

@Test
public void testGetSelectors() {
    String[] selectors = { "a", "b" };
    Result result = mock(Result.class);
    doReturn(selectors).when(result).getSelectorNames();
    assertTrue(elementsEqual(asList(selectors), createContentRemoteResults(result).getSelectors()));
}
Also used : Result(org.apache.jackrabbit.oak.api.Result) Test(org.junit.Test)

Example 25 with Result

use of org.apache.jackrabbit.oak.api.Result in project jackrabbit-oak by apache.

the class UserProvider method getAuthorizableByPrincipal.

@CheckForNull
Tree getAuthorizableByPrincipal(@Nonnull Principal principal) {
    if (principal instanceof TreeBasedPrincipal) {
        return root.getTree(((TreeBasedPrincipal) principal).getOakPath());
    }
    // index as well.
    try {
        StringBuilder stmt = new StringBuilder();
        stmt.append("SELECT * FROM [").append(UserConstants.NT_REP_AUTHORIZABLE).append(']');
        stmt.append(" WHERE [").append(UserConstants.REP_PRINCIPAL_NAME).append("] = $principalName");
        stmt.append(QueryEngine.INTERNAL_SQL2_QUERY);
        Result result = root.getQueryEngine().executeQuery(stmt.toString(), Query.JCR_SQL2, 1, 0, Collections.singletonMap("principalName", PropertyValues.newString(principal.getName())), NO_MAPPINGS);
        Iterator<? extends ResultRow> rows = result.getRows().iterator();
        if (rows.hasNext()) {
            String path = rows.next().getPath();
            return root.getTree(path);
        }
    } catch (ParseException ex) {
        log.error("Failed to retrieve authorizable by principal", ex);
    }
    return null;
}
Also used : ParseException(java.text.ParseException) Result(org.apache.jackrabbit.oak.api.Result) CheckForNull(javax.annotation.CheckForNull)

Aggregations

Result (org.apache.jackrabbit.oak.api.Result)36 ResultRow (org.apache.jackrabbit.oak.api.ResultRow)23 Test (org.junit.Test)20 PropertyValue (org.apache.jackrabbit.oak.api.PropertyValue)15 Tree (org.apache.jackrabbit.oak.api.Tree)15 AbstractQueryTest (org.apache.jackrabbit.oak.query.AbstractQueryTest)13 ParseException (java.text.ParseException)10 Root (org.apache.jackrabbit.oak.api.Root)5 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)5 Nonnull (javax.annotation.Nonnull)4 ExtractionResult (org.apache.jackrabbit.oak.plugins.index.fulltext.ExtractedText.ExtractionResult)3 ArrayList (java.util.ArrayList)2 ContentSession (org.apache.jackrabbit.oak.api.ContentSession)2 QueryEngine (org.apache.jackrabbit.oak.api.QueryEngine)2 Lists.newArrayList (com.google.common.collect.Lists.newArrayList)1 Sets.newHashSet (com.google.common.collect.Sets.newHashSet)1 Closer (com.google.common.io.Closer)1 IOException (java.io.IOException)1 Principal (java.security.Principal)1 Collections (java.util.Collections)1