Example usage for org.apache.solr.core SolrCore getSearcher

List of usage examples for org.apache.solr.core SolrCore getSearcher

Introduction

In this page you can find the example usage for org.apache.solr.core SolrCore getSearcher.

Prototype

public RefCounted<SolrIndexSearcher> getSearcher(boolean forceNew, boolean returnSearcher,
            final Future[] waitSearcher) 

Source Link

Usage

From source file:org.alfresco.solr.AlfrescoCoreAdminTester.java

License:Open Source License

private void checkAuth(SolrQueryResponse rsp, SolrCore core, AlfrescoSolrDataModel dataModel, long count)
        throws IOException, org.apache.lucene.queryparser.classic.ParseException {
    NamedList<Object> report = new SimpleOrderedMap<Object>();
    rsp.add("Auth", report);
    RefCounted<SolrIndexSearcher> refCounted = null;
    try {/*from  w  w w .j a  va2 s.c  om*/
        refCounted = core.getSearcher(false, true, null);
        SolrIndexSearcher solrIndexSearcher = refCounted.get();

        testFTSQuery(dataModel, report, solrIndexSearcher, "TEXT:\"Test\"", (int) count, null, null, null);
        testFTSQuery(dataModel, report, solrIndexSearcher, "TEXT:\"doc\"", (int) count, null, null, null);
        testFTSQuery(dataModel, report, solrIndexSearcher, "TEXT:\"number\"", (int) count, null, null, null);
        testFTSQuery(dataModel, report, solrIndexSearcher, "TEXT:\"1\"", (int) count, null, null, null);

        testFTSQuery(dataModel, report, solrIndexSearcher, "AUTHORITY:\"READER-0\"", (int) count, null, null,
                null);

        buildAndRunAuthQuery(dataModel, count, report, solrIndexSearcher, 8);
        buildAndRunAuthQuery(dataModel, count, report, solrIndexSearcher, 9);
        buildAndRunAuthQuery(dataModel, count, report, solrIndexSearcher, 10);
        buildAndRunAuthQuery(dataModel, count, report, solrIndexSearcher, 98);
        buildAndRunAuthQuery(dataModel, count, report, solrIndexSearcher, 99);
        buildAndRunAuthQuery(dataModel, count, report, solrIndexSearcher, 100);
        buildAndRunAuthQuery(dataModel, count, report, solrIndexSearcher, 998);
        buildAndRunAuthQuery(dataModel, count, report, solrIndexSearcher, 999);
        buildAndRunAuthQuery(dataModel, count, report, solrIndexSearcher, 1000);
        buildAndRunAuthQuery(dataModel, count, report, solrIndexSearcher, 9998);
        buildAndRunAuthQuery(dataModel, count, report, solrIndexSearcher, 9999);
        buildAndRunAuthQuery(dataModel, count, report, solrIndexSearcher, 10000);
        buildAndRunAuthQuery(dataModel, count, report, solrIndexSearcher, 10000);
        buildAndRunAuthQuery(dataModel, count, report, solrIndexSearcher, 10000);
        buildAndRunAuthQuery(dataModel, count, report, solrIndexSearcher, 20000);
        buildAndRunAuthQuery(dataModel, count, report, solrIndexSearcher, 20000);
        buildAndRunAuthQuery(dataModel, count, report, solrIndexSearcher, 20000);
        // buildAndRunAuthQuery(dataModel, count, report, solrIndexSearcher, 100000);
        // buildAndRunAuthQuery(dataModel, count, report, solrIndexSearcher, 1000000);
        // buildAndRunAuthQuery(dataModel, count, report, solrIndexSearcher, 10000000);
    } finally {
        if (refCounted != null) {
            refCounted.decref();
        }
    }
}

From source file:org.alfresco.solr.AlfrescoCoreAdminTester.java

License:Open Source License

/**
 * @param after/*from  w ww . j  a v a2  s  .c  o  m*/
 * @param core
 * @param dataModel
 * @throws IOException
 * @throws org.apache.lucene.queryparser.classic.ParseException 
 */
private void testChildNameEscaping(NamedList<Object> after, SolrCore core, AlfrescoSolrDataModel dataModel,
        NodeRef rootNodeRef) throws IOException, org.apache.lucene.queryparser.classic.ParseException {
    String COMPLEX_LOCAL_NAME = "\u0020\u0060\u00ac\u00a6\u0021\"\u00a3\u0024\u0025\u005e\u0026\u002a\u0028\u0029\u002d\u005f\u003d\u002b\t\n\\\u0000\u005b\u005d\u007b\u007d\u003b\u0027\u0023\u003a\u0040\u007e\u002c\u002e\u002f\u003c\u003e\u003f\\u007c\u005f\u0078\u0054\u0036\u0035\u0041\u005f";
    String NUMERIC_LOCAL_NAME = "12Woof12";

    NodeRef childNameEscapingNodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID());
    QName childNameEscapingQName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI,
            COMPLEX_LOCAL_NAME);
    QName pathChildNameEscapingQName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI,
            ISO9075.encode(COMPLEX_LOCAL_NAME));
    ChildAssociationRef complexCAR = new ChildAssociationRef(ContentModel.ASSOC_CHILDREN, rootNodeRef,
            childNameEscapingQName, childNameEscapingNodeRef, true, 0);
    addNode(core, dataModel, 1, 17, 1, testSuperType, null, null, null, "system",
            new ChildAssociationRef[] { complexCAR }, new NodeRef[] { rootNodeRef },
            new String[] { "/" + pathChildNameEscapingQName.toString() }, childNameEscapingNodeRef, true);

    NodeRef numericNameEscapingNodeRef = new NodeRef(new StoreRef("workspace", "SpacesStore"), createGUID());
    QName numericNameEscapingQName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI,
            NUMERIC_LOCAL_NAME);
    QName pathNumericNameEscapingQName = QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI,
            ISO9075.encode(NUMERIC_LOCAL_NAME));
    ChildAssociationRef numericCAR = new ChildAssociationRef(ContentModel.ASSOC_CHILDREN, rootNodeRef,
            numericNameEscapingQName, numericNameEscapingNodeRef, true, 0);
    addNode(core, dataModel, 1, 18, 1, testSuperType, null, null, null, "system",
            new ChildAssociationRef[] { numericCAR }, new NodeRef[] { rootNodeRef },
            new String[] { "/" + pathNumericNameEscapingQName.toString() }, numericNameEscapingNodeRef, true);

    NamedList<Object> report = new SimpleOrderedMap<Object>();
    after.add("TestChildNameEscaping", report);
    RefCounted<SolrIndexSearcher> refCounted = null;
    try {
        refCounted = core.getSearcher(false, true, null);
        SolrIndexSearcher solrIndexSearcher = refCounted.get();

        testQuery(dataModel, report, solrIndexSearcher,
                "PATH:\"/cm:" + ISO9075.encode(COMPLEX_LOCAL_NAME) + "\"", 1);
        testQuery(dataModel, report, solrIndexSearcher,
                "PATH:\"/cm:" + ISO9075.encode(NUMERIC_LOCAL_NAME) + "\"", 1);
    } finally {
        if (refCounted != null) {
            refCounted.decref();
        }
    }
}

From source file:org.alfresco.solr.AlfrescoCoreAdminTester.java

License:Open Source License

private void checkRootNode(NamedList<Object> before, SolrCore core, AlfrescoSolrDataModel dataModel)
        throws IOException, org.apache.lucene.queryparser.classic.ParseException {
    NamedList<Object> report = new SimpleOrderedMap<Object>();
    before.add("RootNode", report);
    RefCounted<SolrIndexSearcher> refCounted = null;
    try {/*from ww w. j  av a 2 s  . c  o m*/
        refCounted = core.getSearcher(false, true, null);
        SolrIndexSearcher solrIndexSearcher = refCounted.get();

        testQuery(dataModel, report, solrIndexSearcher, "PATH:\"/\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "PATH:\"/.\"", 1);
    } finally {
        if (refCounted != null) {
            refCounted.decref();
        }
    }
}

From source file:org.alfresco.solr.AlfrescoCoreAdminTester.java

License:Open Source License

private void checkQNames(NamedList<Object> before, SolrCore core, AlfrescoSolrDataModel dataModel)
        throws IOException, org.apache.lucene.queryparser.classic.ParseException {
    NamedList<Object> report = new SimpleOrderedMap<Object>();
    before.add("QNames", report);
    RefCounted<SolrIndexSearcher> refCounted = null;
    try {//from   w w w  .  j ava2 s  .  c o  m
        refCounted = core.getSearcher(false, true, null);
        SolrIndexSearcher solrIndexSearcher = refCounted.get();

        testQuery(dataModel, report, solrIndexSearcher, "QNAME:\"nine\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "PRIMARYASSOCTYPEQNAME:\"cm:contains\"", 11);
        testQuery(dataModel, report, solrIndexSearcher, "PRIMARYASSOCTYPEQNAME:\"sys:children\"", 4);
        testQuery(dataModel, report, solrIndexSearcher, "ASSOCTYPEQNAME:\"cm:contains\"", 11);
        testQuery(dataModel, report, solrIndexSearcher, "ASSOCTYPEQNAME:\"sys:children\"", 5);
    } finally {
        if (refCounted != null) {
            refCounted.decref();
        }
    }
}

From source file:org.alfresco.solr.AlfrescoCoreAdminTester.java

License:Open Source License

private void checkType(NamedList<Object> before, SolrCore core, AlfrescoSolrDataModel dataModel)
        throws IOException, org.apache.lucene.queryparser.classic.ParseException {
    NamedList<Object> report = new SimpleOrderedMap<Object>();
    before.add("Type", report);
    RefCounted<SolrIndexSearcher> refCounted = null;
    try {/*from  ww w  . j  a v  a 2s  . c om*/
        refCounted = core.getSearcher(false, true, null);
        SolrIndexSearcher solrIndexSearcher = refCounted.get();

        testQuery(dataModel, report, solrIndexSearcher, "TYPE:\"" + testType.toString() + "\"", 1);
        testQuery(dataModel, report, solrIndexSearcher,
                "TYPE:\"" + testType.toPrefixString(dataModel.getNamespaceDAO()) + "\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "EXACTTYPE:\"" + testType.toString() + "\"", 1);
        testQuery(dataModel, report, solrIndexSearcher,
                "EXACTTYPE:\"" + testType.toPrefixString(dataModel.getNamespaceDAO()) + "\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TYPE:\"" + testSuperType.toString() + "\"", 13);
        testQuery(dataModel, report, solrIndexSearcher,
                "TYPE:\"" + testSuperType.toPrefixString(dataModel.getNamespaceDAO()) + "\"", 13);
        testQuery(dataModel, report, solrIndexSearcher, "TYPE:\"" + ContentModel.TYPE_CONTENT.toString() + "\"",
                1);
        testQuery(dataModel, report, solrIndexSearcher, "TYPE:\"cm:content\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TYPE:\"cm:content0\"", 0);
        testQuery(dataModel, report, solrIndexSearcher, "TYPE:\"cm:CONTENT\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TYPE:\"cm:CONTENT1\"", 0);
        testQuery(dataModel, report, solrIndexSearcher, "TYPE:\"CM:CONTENT\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TYPE:\"CM:CONTENT1\"", 0);
        testQuery(dataModel, report, solrIndexSearcher, "TYPE:\"CONTENT\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TYPE:\"CONTENT1\"", 0);
        testQuery(dataModel, report, solrIndexSearcher, "TYPE:\"content\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TYPE:\"content0\"", 0);
        testQuery(dataModel, report, solrIndexSearcher, "ASPECT:\"flubber\"", 0);
        testQuery(dataModel, report, solrIndexSearcher,
                "TYPE:\"" + ContentModel.TYPE_THUMBNAIL.toString() + "\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TYPE:\"" + ContentModel.TYPE_THUMBNAIL.toString()
                + "\" TYPE:\"" + ContentModel.TYPE_CONTENT.toString() + "\"", 2);
        testQuery(dataModel, report, solrIndexSearcher, "EXACTTYPE:\"" + testSuperType.toString() + "\"", 12);
        testQuery(dataModel, report, solrIndexSearcher,
                "EXACTTYPE:\"" + testSuperType.toPrefixString(dataModel.getNamespaceDAO()) + "\"", 12);
        testQuery(dataModel, report, solrIndexSearcher, "ASPECT:\"" + testAspect.toString() + "\"", 1);
        testQuery(dataModel, report, solrIndexSearcher,
                "ASPECT:\"" + testAspect.toPrefixString(dataModel.getNamespaceDAO()) + "\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "EXACTASPECT:\"" + testAspect.toString() + "\"", 1);
        testQuery(dataModel, report, solrIndexSearcher,
                "EXACTASPECT:\"" + testAspect.toPrefixString(dataModel.getNamespaceDAO()) + "\"", 1);
    } finally {
        if (refCounted != null) {
            refCounted.decref();
        }
    }
}

From source file:org.alfresco.solr.AlfrescoCoreAdminTester.java

License:Open Source License

private void checkText(NamedList<Object> before, SolrCore core, AlfrescoSolrDataModel dataModel)
        throws IOException, org.apache.lucene.queryparser.classic.ParseException {
    NamedList<Object> report = new SimpleOrderedMap<Object>();
    before.add("Text", report);
    RefCounted<SolrIndexSearcher> refCounted = null;
    try {//from www .  j  a v  a  2 s  . co  m
        refCounted = core.getSearcher(false, true, null);
        SolrIndexSearcher solrIndexSearcher = refCounted.get();

        testQuery(dataModel, report, solrIndexSearcher,
                "TEXT:fox AND TYPE:\"" + ContentModel.PROP_CONTENT.toString() + "\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:fox @cm\\:name:fox", 1);
        testQuery(dataModel, report, solrIndexSearcher, "d\\:content:fox d\\:text:fox", 1);
        testQuery(dataModel, report, solrIndexSearcher,
                "TEXT:fo AND TYPE:\"" + ContentModel.PROP_CONTENT.toString() + "\"", 0);

        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"the\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"and\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"over the lazy\"", 1);
        // Depends on stop words being removed .... which depends on the configuration
        //testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"over a lazy\"", 1);

        testQuery(dataModel, report, solrIndexSearcher,
                "\\@" + SearchLanguageConversion.escapeLuceneQuery(
                        QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-atomic").toString())
                        + ":*a*",
                1);
        testQuery(dataModel, report, solrIndexSearcher,
                "\\@" + SearchLanguageConversion.escapeLuceneQuery(
                        QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-atomic").toString())
                        + ":*A*",
                1);
        testQuery(dataModel, report, solrIndexSearcher,
                "\\@" + SearchLanguageConversion.escapeLuceneQuery(
                        QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-atomic").toString())
                        + ":\"*a*\"",
                1);
        testQuery(dataModel, report, solrIndexSearcher,
                "\\@" + SearchLanguageConversion.escapeLuceneQuery(
                        QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-atomic").toString())
                        + ":\"*A*\"",
                1);
        testQuery(dataModel, report, solrIndexSearcher,
                "\\@" + SearchLanguageConversion.escapeLuceneQuery(
                        QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-atomic").toString())
                        + ":*s*",
                1);
        testQuery(dataModel, report, solrIndexSearcher,
                "\\@" + SearchLanguageConversion.escapeLuceneQuery(
                        QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-atomic").toString())
                        + ":*S*",
                1);
        testQuery(dataModel, report, solrIndexSearcher,
                "\\@" + SearchLanguageConversion.escapeLuceneQuery(
                        QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-atomic").toString())
                        + ":\"*s*\"",
                1);
        testQuery(dataModel, report, solrIndexSearcher,
                "\\@" + SearchLanguageConversion.escapeLuceneQuery(
                        QName.createQName(TEST_NAMESPACE, "text-indexed-stored-tokenised-atomic").toString())
                        + ":\"*S*\"",
                1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:*A*", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"*a*\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"*A*\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:*a*", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:*Z*", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"*z*\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"*Z*\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:*z*", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:laz*", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:laz~", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:la?y", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:?a?y", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:*azy", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:*az*", 1);

        // Accents

        testQuery(dataModel, report, solrIndexSearcher,
                "TEXT:\"\u00E0\u00EA\u00EE\u00F0\u00F1\u00F6\u00FB\u00FF\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"aeidnouy\"", 1);

        // FTS

        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"fox\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "@"
                + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString()) + ":\"fox\"",
                1);
        testQuery(dataModel, report, solrIndexSearcher,
                "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString())
                        + ".mimetype:\"text/plain\"",
                1);
        testQuery(dataModel, report, solrIndexSearcher,
                "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString())
                        + ".locale:\"en_GB\"",
                1);
        testQuery(dataModel, report, solrIndexSearcher,
                "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString())
                        + ".locale:en_*",
                1);
        testQuery(dataModel, report, solrIndexSearcher,
                "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString())
                        + ".locale:e*_GB",
                1);
        testQuery(dataModel, report, solrIndexSearcher,
                "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString())
                        + ".size:\"298\"",
                1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"fox\"", 0, null,
                new String[] { "@" + ContentModel.PROP_NAME.toString() }, null);
        testQuery(
                dataModel, report, solrIndexSearcher, "TEXT:\"fox\"", 1, null, new String[] {
                        "@" + ContentModel.PROP_NAME.toString(), "@" + ContentModel.PROP_CONTENT.toString() },
                null);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"cabbage\"", 15, null,
                new String[] { "@" + orderText.toString() }, null);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"cab*\"", 15, null,
                new String[] { "@" + orderText.toString() }, null);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"*bage\"", 15, null,
                new String[] { "@" + orderText.toString() }, null);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"*ba*\"", 15, null,
                new String[] { "@" + orderText.toString() }, null);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:cabbage", 15, null,
                new String[] { "@" + orderText.toString() }, null);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:*cab*", 15, Locale.ENGLISH,
                new String[] { "@" + orderText.toString() }, null);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:*bage", 15, null,
                new String[] { "@" + orderText.toString() }, null);
        //            testQuery(dataModel, report, solrIndexSearcher, "TEXT:dabbage~0.3", 15, null, new String[] { "@"
        //                        + orderText.toString() }, null);

        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"alfresco\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"alfresc?\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"alfres??\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"alfre???\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"alfr????\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"alf?????\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"al??????\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"a???????\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"????????\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"a??re???\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"?lfresco\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"??fresco\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"???resco\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"????esco\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"?????sco\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"??????co\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"???????o\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"???res?o\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"????e?co\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"????e?c?\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"???re???\"", 1);

        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"alfresc*\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"alfres*\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"alfre*\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"alfr*\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"alf*\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"al*\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"a*\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"a****\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"*lfresco\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"*fresco\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"*resco\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"*esco\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"*sco\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"*co\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"*o\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"****lf**sc***\"", 1);
        // Lucene wildcard bug matches when it should not ....
        //testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"*??*lf**sc***\"", 0);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"??lf**sc***\"", 0);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"alfresc*tutorial\"", 0);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"alf* tut*\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:\"*co *al\"", 1);

    } finally {
        if (refCounted != null) {
            refCounted.decref();
        }
    }
}

From source file:org.alfresco.solr.AlfrescoCoreAdminTester.java

License:Open Source License

private void checkDataType(NamedList<Object> before, SolrCore core, AlfrescoSolrDataModel dataModel)
        throws IOException, org.apache.lucene.queryparser.classic.ParseException {
    NamedList<Object> report = new SimpleOrderedMap<Object>();
    before.add("DataType", report);
    RefCounted<SolrIndexSearcher> refCounted = null;
    try {// w  w w .  j a v a 2 s.  co  m
        refCounted = core.getSearcher(false, true, null);
        SolrIndexSearcher solrIndexSearcher = refCounted.get();

        testQuery(dataModel, report, solrIndexSearcher, "d\\:double:\"5.6\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "d\\:content:\"fox\"", 1);
        testQuery(dataModel, report, solrIndexSearcher, "d\\:content:\"fox\"", 1, Locale.US, null, null);

    } finally {
        if (refCounted != null) {
            refCounted.decref();
        }
    }
}

From source file:org.alfresco.solr.AlfrescoCoreAdminTester.java

License:Open Source License

private void checkNullAndUnset(NamedList<Object> before, SolrCore core, AlfrescoSolrDataModel dataModel)
        throws IOException, InvalidQNameException, org.apache.lucene.queryparser.classic.ParseException {
    NamedList<Object> report = new SimpleOrderedMap<Object>();
    before.add("ISNULL/ISUNSET/ISNOTNULL", report);
    RefCounted<SolrIndexSearcher> refCounted = null;
    try {/*ww  w  .ja v  a  2 s. c  o  m*/
        refCounted = core.getSearcher(false, true, null);
        SolrIndexSearcher solrIndexSearcher = refCounted.get();

        testQuery(dataModel, report, solrIndexSearcher,
                "ISUNSET:\"" + QName.createQName(TEST_NAMESPACE, "null").toString() + "\"", 0);
        testQuery(dataModel, report, solrIndexSearcher,
                "ISNULL:\"" + QName.createQName(TEST_NAMESPACE, "null").toString() + "\"", 16);
        testQuery(dataModel, report, solrIndexSearcher,
                "EXISTS:\"" + QName.createQName(TEST_NAMESPACE, "null").toString() + "\"", 1);
        testQuery(dataModel, report, solrIndexSearcher,
                "ISNOTNULL:\"" + QName.createQName(TEST_NAMESPACE, "null").toString() + "\"", 0);

        testQuery(dataModel, report, solrIndexSearcher,
                "ISUNSET:\"" + QName.createQName(TEST_NAMESPACE, "path-ista").toString() + "\"", 0);
        testQuery(dataModel, report, solrIndexSearcher,
                "ISNULL:\"" + QName.createQName(TEST_NAMESPACE, "path-ista").toString() + "\"", 15);
        testQuery(dataModel, report, solrIndexSearcher,
                "ISNOTNULL:\"" + QName.createQName(TEST_NAMESPACE, "path-ista").toString() + "\"", 1);
        testQuery(dataModel, report, solrIndexSearcher,
                "EXISTS:\"" + QName.createQName(TEST_NAMESPACE, "path-ista").toString() + "\"", 1);

        testQuery(dataModel, report, solrIndexSearcher,
                "ISUNSET:\"" + QName.createQName(TEST_NAMESPACE, "aspectProperty").toString() + "\"", 0);
        testQuery(dataModel, report, solrIndexSearcher,
                "ISNULL:\"" + QName.createQName(TEST_NAMESPACE, "aspectProperty").toString() + "\"", 15);
        testQuery(dataModel, report, solrIndexSearcher,
                "ISNOTNULL:\"" + QName.createQName(TEST_NAMESPACE, "aspectProperty").toString() + "\"", 1);
        testQuery(dataModel, report, solrIndexSearcher,
                "EXISTS:\"" + QName.createQName(TEST_NAMESPACE, "aspectProperty").toString() + "\"", 1);
    } finally {
        if (refCounted != null) {
            refCounted.decref();
        }
    }
}

From source file:org.alfresco.solr.AlfrescoCoreAdminTester.java

License:Open Source License

private void checkNonField(NamedList<Object> before, SolrCore core, AlfrescoSolrDataModel dataModel)
        throws IOException, org.apache.lucene.queryparser.classic.ParseException {
    NamedList<Object> report = new SimpleOrderedMap<Object>();
    before.add("NonField", report);
    RefCounted<SolrIndexSearcher> refCounted = null;
    try {/*w  ww  .  ja va 2s . co m*/
        refCounted = core.getSearcher(false, true, null);
        SolrIndexSearcher solrIndexSearcher = refCounted.get();

        testQuery(dataModel, report, solrIndexSearcher, "TEXT:fox", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:fo*", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:f*x", 1);
        testQuery(dataModel, report, solrIndexSearcher, "TEXT:*ox", 1);
        testQuery(dataModel, report, solrIndexSearcher,
                "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString()) + ":fox",
                1);
        testQuery(dataModel, report, solrIndexSearcher,
                "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString()) + ":fo*",
                1);
        testQuery(dataModel, report, solrIndexSearcher,
                "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString()) + ":f*x",
                1);
        testQuery(dataModel, report, solrIndexSearcher,
                "@" + SearchLanguageConversion.escapeLuceneQuery(ContentModel.PROP_CONTENT.toString()) + ":*ox",
                1);
        testQuery(dataModel, report, solrIndexSearcher, "@" + SearchLanguageConversion.escapeLuceneQuery(
                ContentModel.PROP_CONTENT.toPrefixString(dataModel.getNamespaceDAO())) + ":fox", 1);
        testQuery(dataModel, report, solrIndexSearcher, "@" + SearchLanguageConversion.escapeLuceneQuery(
                ContentModel.PROP_CONTENT.toPrefixString(dataModel.getNamespaceDAO())) + ":fo*", 1);
        testQuery(dataModel, report, solrIndexSearcher, "@" + SearchLanguageConversion.escapeLuceneQuery(
                ContentModel.PROP_CONTENT.toPrefixString(dataModel.getNamespaceDAO())) + ":f*x", 1);
        testQuery(dataModel, report, solrIndexSearcher, "@" + SearchLanguageConversion.escapeLuceneQuery(
                ContentModel.PROP_CONTENT.toPrefixString(dataModel.getNamespaceDAO())) + ":*ox", 1);
    } finally {
        if (refCounted != null) {
            refCounted.decref();
        }
    }
}

From source file:org.alfresco.solr.AlfrescoCoreAdminTester.java

License:Open Source License

private void checkRanges(NamedList<Object> before, SolrCore core, AlfrescoSolrDataModel dataModel)
        throws IOException, org.apache.lucene.queryparser.classic.ParseException {
    NamedList<Object> report = new SimpleOrderedMap<Object>();
    before.add("Ranges", report);
    RefCounted<SolrIndexSearcher> refCounted = null;
    try {//from   w w  w  .  j a v a  2  s.  c o m
        refCounted = core.getSearcher(false, true, null);
        SolrIndexSearcher solrIndexSearcher = refCounted.get();
        testQuery(dataModel, report, solrIndexSearcher,
                "\\@" + SearchLanguageConversion.escapeLuceneQuery(orderText.toString()) + ":[a TO b]", 1);
        testQuery(dataModel, report, solrIndexSearcher,
                "\\@" + SearchLanguageConversion.escapeLuceneQuery(orderText.toString()) + ":[a TO \uFFFF]",
                14);
        testQuery(dataModel, report, solrIndexSearcher,
                "\\@" + SearchLanguageConversion.escapeLuceneQuery(orderText.toString()) + ":[* TO b]", 2);
        testQuery(dataModel, report, solrIndexSearcher,
                "\\@" + SearchLanguageConversion.escapeLuceneQuery(orderText.toString()) + ":[\u0000 TO b]", 2);
        testQuery(dataModel, report, solrIndexSearcher,
                "\\@" + SearchLanguageConversion.escapeLuceneQuery(orderText.toString()) + ":[d TO \uFFFF]",
                12);
        testQuery(dataModel, report, solrIndexSearcher,
                "\\@" + SearchLanguageConversion.escapeLuceneQuery(orderText.toString()) + ":[d TO *]", 12);

    } finally {
        if (refCounted != null) {
            refCounted.decref();
        }
    }
}