Example usage for org.apache.lucene.search QueryUtils checkEqual

List of usage examples for org.apache.lucene.search QueryUtils checkEqual

Introduction

In this page you can find the example usage for org.apache.lucene.search QueryUtils checkEqual.

Prototype

public static void checkEqual(Query q1, Query q2) 

Source Link

Usage

From source file:com.sindicetech.siren.search.node.TestNodeNumericRangeQuery32.java

License:Open Source License

@Test
public void testEqualsAndHash() throws Exception {
    QueryUtils.checkHashEquals(NodeNumericRangeQuery.newIntRange("test1", 4, 10, 20, true, true));
    QueryUtils.checkHashEquals(NodeNumericRangeQuery.newIntRange("test2", 4, 10, 20, false, true));
    QueryUtils.checkHashEquals(NodeNumericRangeQuery.newIntRange("test3", 4, 10, 20, true, false));
    QueryUtils.checkHashEquals(NodeNumericRangeQuery.newIntRange("test4", 4, 10, 20, false, false));
    QueryUtils.checkHashEquals(NodeNumericRangeQuery.newIntRange("test5", 4, 10, null, true, true));
    QueryUtils.checkHashEquals(NodeNumericRangeQuery.newIntRange("test6", 4, null, 20, true, true));
    QueryUtils.checkHashEquals(NodeNumericRangeQuery.newIntRange("test7", 4, null, null, true, true));
    QueryUtils.checkEqual(NodeNumericRangeQuery.newIntRange("test8", 4, 10, 20, true, true),
            NodeNumericRangeQuery.newIntRange("test8", 4, 10, 20, true, true));
    QueryUtils.checkUnequal(NodeNumericRangeQuery.newIntRange("test9", 4, 10, 20, true, true),
            NodeNumericRangeQuery.newIntRange("test9", 8, 10, 20, true, true));
    QueryUtils.checkUnequal(NodeNumericRangeQuery.newIntRange("test10a", 4, 10, 20, true, true),
            NodeNumericRangeQuery.newIntRange("test10b", 4, 10, 20, true, true));
    QueryUtils.checkUnequal(NodeNumericRangeQuery.newIntRange("test11", 4, 10, 20, true, true),
            NodeNumericRangeQuery.newIntRange("test11", 4, 20, 10, true, true));
    QueryUtils.checkUnequal(NodeNumericRangeQuery.newIntRange("test12", 4, 10, 20, true, true),
            NodeNumericRangeQuery.newIntRange("test12", 4, 10, 20, false, true));
    QueryUtils.checkUnequal(NodeNumericRangeQuery.newIntRange("test13", 4, 10, 20, true, true),
            NodeNumericRangeQuery.newFloatRange("test13", 4, 10f, 20f, true, true));
    // the following produces a hash collision, because Long and Integer have the same hashcode, so only test equality:
    final Query q1 = NodeNumericRangeQuery.newIntRange("test14", 4, 10, 20, true, true);
    final Query q2 = NodeNumericRangeQuery.newLongRange("test14", 4, 10L, 20L, true, true);
    assertFalse(q1.equals(q2));//from   w  ww . j a  v a2s. co m
    assertFalse(q2.equals(q1));
}

From source file:com.sindicetech.siren.search.node.TestNodeNumericRangeQuery64.java

License:Open Source License

@Test
public void testEqualsAndHash() throws Exception {
    QueryUtils.checkHashEquals(NodeNumericRangeQuery.newLongRange("test1", 4, 10L, 20L, true, true));
    QueryUtils.checkHashEquals(NodeNumericRangeQuery.newLongRange("test2", 4, 10L, 20L, false, true));
    QueryUtils.checkHashEquals(NodeNumericRangeQuery.newLongRange("test3", 4, 10L, 20L, true, false));
    QueryUtils.checkHashEquals(NodeNumericRangeQuery.newLongRange("test4", 4, 10L, 20L, false, false));
    QueryUtils.checkHashEquals(NodeNumericRangeQuery.newLongRange("test5", 4, 10L, null, true, true));
    QueryUtils.checkHashEquals(NodeNumericRangeQuery.newLongRange("test6", 4, null, 20L, true, true));
    QueryUtils.checkHashEquals(NodeNumericRangeQuery.newLongRange("test7", 4, null, null, true, true));
    QueryUtils.checkEqual(NodeNumericRangeQuery.newLongRange("test8", 4, 10L, 20L, true, true),
            NodeNumericRangeQuery.newLongRange("test8", 4, 10L, 20L, true, true));
    QueryUtils.checkUnequal(NodeNumericRangeQuery.newLongRange("test9", 4, 10L, 20L, true, true),
            NodeNumericRangeQuery.newLongRange("test9", 8, 10L, 20L, true, true));
    QueryUtils.checkUnequal(NodeNumericRangeQuery.newLongRange("test10a", 4, 10L, 20L, true, true),
            NodeNumericRangeQuery.newLongRange("test10b", 4, 10L, 20L, true, true));
    QueryUtils.checkUnequal(NodeNumericRangeQuery.newLongRange("test11", 4, 10L, 20L, true, true),
            NodeNumericRangeQuery.newLongRange("test11", 4, 20L, 10L, true, true));
    QueryUtils.checkUnequal(NodeNumericRangeQuery.newLongRange("test12", 4, 10L, 20L, true, true),
            NodeNumericRangeQuery.newLongRange("test12", 4, 10L, 20L, false, true));
    QueryUtils.checkUnequal(NodeNumericRangeQuery.newLongRange("test13", 4, 10L, 20L, true, true),
            NodeNumericRangeQuery.newFloatRange("test13", 4, 10f, 20f, true, true));
    // difference to int range is tested in TestSirenNumericRangeQuery32
}

From source file:org.apache.solr.legacy.TestNumericRangeQuery32.java

License:Apache License

@Test
public void testEqualsAndHash() throws Exception {
    QueryUtils.checkHashEquals(LegacyNumericRangeQuery.newIntRange("test1", 4, 10, 20, true, true));
    QueryUtils.checkHashEquals(LegacyNumericRangeQuery.newIntRange("test2", 4, 10, 20, false, true));
    QueryUtils.checkHashEquals(LegacyNumericRangeQuery.newIntRange("test3", 4, 10, 20, true, false));
    QueryUtils.checkHashEquals(LegacyNumericRangeQuery.newIntRange("test4", 4, 10, 20, false, false));
    QueryUtils.checkHashEquals(LegacyNumericRangeQuery.newIntRange("test5", 4, 10, null, true, true));
    QueryUtils.checkHashEquals(LegacyNumericRangeQuery.newIntRange("test6", 4, null, 20, true, true));
    QueryUtils.checkHashEquals(LegacyNumericRangeQuery.newIntRange("test7", 4, null, null, true, true));
    QueryUtils.checkEqual(LegacyNumericRangeQuery.newIntRange("test8", 4, 10, 20, true, true),
            LegacyNumericRangeQuery.newIntRange("test8", 4, 10, 20, true, true));
    QueryUtils.checkUnequal(LegacyNumericRangeQuery.newIntRange("test9", 4, 10, 20, true, true),
            LegacyNumericRangeQuery.newIntRange("test9", 8, 10, 20, true, true));
    QueryUtils.checkUnequal(LegacyNumericRangeQuery.newIntRange("test10a", 4, 10, 20, true, true),
            LegacyNumericRangeQuery.newIntRange("test10b", 4, 10, 20, true, true));
    QueryUtils.checkUnequal(LegacyNumericRangeQuery.newIntRange("test11", 4, 10, 20, true, true),
            LegacyNumericRangeQuery.newIntRange("test11", 4, 20, 10, true, true));
    QueryUtils.checkUnequal(LegacyNumericRangeQuery.newIntRange("test12", 4, 10, 20, true, true),
            LegacyNumericRangeQuery.newIntRange("test12", 4, 10, 20, false, true));
    QueryUtils.checkUnequal(LegacyNumericRangeQuery.newIntRange("test13", 4, 10, 20, true, true),
            LegacyNumericRangeQuery.newFloatRange("test13", 4, 10f, 20f, true, true));
    // the following produces a hash collision, because Long and Integer have the same hashcode, so only test equality:
    Query q1 = LegacyNumericRangeQuery.newIntRange("test14", 4, 10, 20, true, true);
    Query q2 = LegacyNumericRangeQuery.newLongRange("test14", 4, 10L, 20L, true, true);
    assertFalse(q1.equals(q2));//from  ww  w  . j  a v a  2 s  . c  o  m
    assertFalse(q2.equals(q1));
}

From source file:org.apache.solr.legacy.TestNumericRangeQuery64.java

License:Apache License

@Test
public void testEqualsAndHash() throws Exception {
    QueryUtils.checkHashEquals(LegacyNumericRangeQuery.newLongRange("test1", 4, 10L, 20L, true, true));
    QueryUtils.checkHashEquals(LegacyNumericRangeQuery.newLongRange("test2", 4, 10L, 20L, false, true));
    QueryUtils.checkHashEquals(LegacyNumericRangeQuery.newLongRange("test3", 4, 10L, 20L, true, false));
    QueryUtils.checkHashEquals(LegacyNumericRangeQuery.newLongRange("test4", 4, 10L, 20L, false, false));
    QueryUtils.checkHashEquals(LegacyNumericRangeQuery.newLongRange("test5", 4, 10L, null, true, true));
    QueryUtils.checkHashEquals(LegacyNumericRangeQuery.newLongRange("test6", 4, null, 20L, true, true));
    QueryUtils.checkHashEquals(LegacyNumericRangeQuery.newLongRange("test7", 4, null, null, true, true));
    QueryUtils.checkEqual(LegacyNumericRangeQuery.newLongRange("test8", 4, 10L, 20L, true, true),
            LegacyNumericRangeQuery.newLongRange("test8", 4, 10L, 20L, true, true));
    QueryUtils.checkUnequal(LegacyNumericRangeQuery.newLongRange("test9", 4, 10L, 20L, true, true),
            LegacyNumericRangeQuery.newLongRange("test9", 8, 10L, 20L, true, true));
    QueryUtils.checkUnequal(LegacyNumericRangeQuery.newLongRange("test10a", 4, 10L, 20L, true, true),
            LegacyNumericRangeQuery.newLongRange("test10b", 4, 10L, 20L, true, true));
    QueryUtils.checkUnequal(LegacyNumericRangeQuery.newLongRange("test11", 4, 10L, 20L, true, true),
            LegacyNumericRangeQuery.newLongRange("test11", 4, 20L, 10L, true, true));
    QueryUtils.checkUnequal(LegacyNumericRangeQuery.newLongRange("test12", 4, 10L, 20L, true, true),
            LegacyNumericRangeQuery.newLongRange("test12", 4, 10L, 20L, false, true));
    QueryUtils.checkUnequal(LegacyNumericRangeQuery.newLongRange("test13", 4, 10L, 20L, true, true),
            LegacyNumericRangeQuery.newFloatRange("test13", 4, 10f, 20f, true, true));
    // difference to int range is tested in TestNumericRangeQuery32
}

From source file:org.apache.solr.search.QueryEqualityTest.java

License:Apache License

/**
 * NOTE: defType is not only used to pick the parser, but, if non-null it is 
 * also to record the parser being tested for coverage sanity checking
 *
 * @see QueryUtils#check/*from   ww  w .  j av  a 2s  .c om*/
 * @see QueryUtils#checkEqual
 * @see #testParserCoverage
 */
protected void assertQueryEquals(final String defType, final SolrQueryRequest req, final String... inputs)
        throws Exception {

    if (null != defType)
        qParsersTested.add(defType);

    final Query[] queries = new Query[inputs.length];

    try {
        SolrQueryResponse rsp = new SolrQueryResponse();
        SolrRequestInfo.setRequestInfo(new SolrRequestInfo(req, rsp));
        for (int i = 0; i < inputs.length; i++) {
            queries[i] = (QParser.getParser(inputs[i], defType, req).getQuery());
        }
    } finally {
        SolrRequestInfo.clearRequestInfo();
    }

    for (int i = 0; i < queries.length; i++) {
        QueryUtils.check(queries[i]);
        // yes starting j=0 is redundent, we're making sure every query 
        // is equal to itself, and that the quality checks work regardless 
        // of which caller/callee is used.
        for (int j = 0; j < queries.length; j++) {
            QueryUtils.checkEqual(queries[i], queries[j]);
        }
    }
}

From source file:org.apache.solr.search.TestValueSourceCache.java

License:Apache License

@Test
public void testGeodistSource() throws SyntaxError {
    Query q_home = getQuery("geodist(home_ll, 45.0, 43.0)");
    Query q_work = getQuery("geodist(work_ll, 45.0, 43.0)");
    Query q_home2 = getQuery("geodist(home_ll, 45.0, 43.0)");
    QueryUtils.checkUnequal(q_work, q_home);
    QueryUtils.checkEqual(q_home, q_home2);
}

From source file:org.apache.solr.search.TestValueSourceCache.java

License:Apache License

void tryQuerySameTypes(String template, String numbers, String type) throws SyntaxError {
    String s1 = template;/*from w ww  .j a v a2s  .co m*/
    String s2 = template;
    String s3 = template;

    String[] numParts = numbers.split(",");
    String type2 = type.replace("val1", "val2");
    for (int idx = 0; s1.contains("#"); ++idx) {
        String patV = "#v" + Integer.toString(idx);
        String patN = "#n" + Integer.toString(idx);
        s1 = s1.replace(patV, type).replace(patN, numParts[idx]);
        s2 = s2.replace(patV, type).replace(patN, numParts[idx]);
        s3 = s3.replace(patV, type2).replace(patN, numParts[idx]);
    }

    //SolrQueryRequest req1 = req( "q","*:*", "fq", s1);

    Query q1 = getQuery(s1);
    Query q2 = getQuery(s2);
    Query q3 = getQuery(s3);
    QueryUtils.checkEqual(q1, q2);
    QueryUtils.checkUnequal(q1, q3);
}

From source file:org.elasticsearch.search.slice.DocValuesSliceQueryTests.java

License:Apache License

public void testBasics() {
    DocValuesSliceQuery query1 = new DocValuesSliceQuery("field1", 1, 10);
    DocValuesSliceQuery query2 = new DocValuesSliceQuery("field1", 1, 10);
    DocValuesSliceQuery query3 = new DocValuesSliceQuery("field2", 1, 10);
    DocValuesSliceQuery query4 = new DocValuesSliceQuery("field1", 2, 10);
    QueryUtils.check(query1);/*from   w  w  w . ja v  a 2 s.co  m*/
    QueryUtils.checkEqual(query1, query2);
    QueryUtils.checkUnequal(query1, query3);
    QueryUtils.checkUnequal(query1, query4);
}

From source file:org.elasticsearch.search.slice.TermsSliceQueryTests.java

License:Apache License

public void testBasics() {
    TermsSliceQuery query1 = new TermsSliceQuery("field1", 1, 10);
    TermsSliceQuery query2 = new TermsSliceQuery("field1", 1, 10);
    TermsSliceQuery query3 = new TermsSliceQuery("field2", 1, 10);
    TermsSliceQuery query4 = new TermsSliceQuery("field1", 2, 10);
    QueryUtils.check(query1);//  ww w  . jav  a2 s.  co  m
    QueryUtils.checkEqual(query1, query2);
    QueryUtils.checkUnequal(query1, query3);
    QueryUtils.checkUnequal(query1, query4);
}

From source file:org.sindice.siren.search.TestSirenNumericRangeQuery32.java

License:Open Source License

@Test
public void testEqualsAndHash() throws Exception {
    QueryUtils.checkHashEquals(SirenNumericRangeQuery.newIntRange("test1", 4, 10, 20, true, true));
    QueryUtils.checkHashEquals(SirenNumericRangeQuery.newIntRange("test2", 4, 10, 20, false, true));
    QueryUtils.checkHashEquals(SirenNumericRangeQuery.newIntRange("test3", 4, 10, 20, true, false));
    QueryUtils.checkHashEquals(SirenNumericRangeQuery.newIntRange("test4", 4, 10, 20, false, false));
    QueryUtils.checkHashEquals(SirenNumericRangeQuery.newIntRange("test5", 4, 10, null, true, true));
    QueryUtils.checkHashEquals(SirenNumericRangeQuery.newIntRange("test6", 4, null, 20, true, true));
    QueryUtils.checkHashEquals(SirenNumericRangeQuery.newIntRange("test7", 4, null, null, true, true));
    QueryUtils.checkEqual(SirenNumericRangeQuery.newIntRange("test8", 4, 10, 20, true, true),
            SirenNumericRangeQuery.newIntRange("test8", 4, 10, 20, true, true));
    QueryUtils.checkUnequal(SirenNumericRangeQuery.newIntRange("test9", 4, 10, 20, true, true),
            SirenNumericRangeQuery.newIntRange("test9", 8, 10, 20, true, true));
    QueryUtils.checkUnequal(SirenNumericRangeQuery.newIntRange("test10a", 4, 10, 20, true, true),
            SirenNumericRangeQuery.newIntRange("test10b", 4, 10, 20, true, true));
    QueryUtils.checkUnequal(SirenNumericRangeQuery.newIntRange("test11", 4, 10, 20, true, true),
            SirenNumericRangeQuery.newIntRange("test11", 4, 20, 10, true, true));
    QueryUtils.checkUnequal(SirenNumericRangeQuery.newIntRange("test12", 4, 10, 20, true, true),
            SirenNumericRangeQuery.newIntRange("test12", 4, 10, 20, false, true));
    QueryUtils.checkUnequal(SirenNumericRangeQuery.newIntRange("test13", 4, 10, 20, true, true),
            SirenNumericRangeQuery.newFloatRange("test13", 4, 10f, 20f, true, true));
    // the following produces a hash collision, because Long and Integer have the same hashcode, so only test equality:
    final Query q1 = SirenNumericRangeQuery.newIntRange("test14", 4, 10, 20, true, true);
    final Query q2 = SirenNumericRangeQuery.newLongRange("test14", 4, 10L, 20L, true, true);
    assertFalse(q1.equals(q2));//from w  w  w.ja  v a2  s .  c o  m
    assertFalse(q2.equals(q1));
}