Example usage for org.apache.lucene.search.spans SpanNearQuery isInOrder

List of usage examples for org.apache.lucene.search.spans SpanNearQuery isInOrder

Introduction

In this page you can find the example usage for org.apache.lucene.search.spans SpanNearQuery isInOrder.

Prototype

public boolean isInOrder() 

Source Link

Document

Return true if matches are required to be in-order.

Usage

From source file:org.alfresco.solr.query.Solr4QueryParserTest.java

License:Open Source License

@Test
public void testFlatQueryShouldBeGeneratedFromSequentiallyShiftedTokens() throws Exception {
    // prepare test data
    LinkedList<PackedTokenAttributeImpl> tokenSequenceWithRepeatedGroup = new LinkedList<PackedTokenAttributeImpl>();
    tokenSequenceWithRepeatedGroup.add(getTokenAttribute(TEST_QUERY.substring(0, 4), 0, 4));
    tokenSequenceWithRepeatedGroup.add(getTokenAttribute(TEST_QUERY.substring(5, 6), 5, 6));
    tokenSequenceWithRepeatedGroup.add(getTokenAttribute(TEST_QUERY.substring(6, 10), 6, 10));
    tokenSequenceWithRepeatedGroup.add(getTokenAttribute(TEST_QUERY.substring(10, 11), 10, 11));

    assertTrue("All tokens in test data must be sequentially shifted",
            parser.isAllTokensSequentiallyShifted(tokenSequenceWithRepeatedGroup));
    assertTrue(parser.getEnablePositionIncrements());

    LinkedList<LinkedList<PackedTokenAttributeImpl>> fixedTokenSequences = new LinkedList<LinkedList<PackedTokenAttributeImpl>>();
    fixedTokenSequences.add(tokenSequenceWithRepeatedGroup);

    // call method to test
    SpanQuery q = parser.generateSpanOrQuery(TEST_FIELD, fixedTokenSequences);

    // check results
    assertNotNull(q);/*  w ww . j  ava  2s . co  m*/
    assertTrue(q instanceof SpanNearQuery);
    SpanNearQuery spanNearQuery = (SpanNearQuery) q;
    assertEquals("Slop between term must be 0", 0, spanNearQuery.getSlop());
    assertTrue("Terms must be in order", spanNearQuery.isInOrder());

    SpanQuery[] termClauses = spanNearQuery.getClauses();
    assertEquals("Flat query must be generated (Query: " + q + ")", tokenSequenceWithRepeatedGroup.size(),
            termClauses.length);
    for (int i = 0; i < termClauses.length; i++) {
        assertTrue(termClauses[i] instanceof SpanTermQuery);
        assertEquals("All tokens must become spanQuery terms", tokenSequenceWithRepeatedGroup.get(i).toString(),
                ((SpanTermQuery) termClauses[i]).getTerm().text());
    }
}

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

License:Apache License

private static void checkApacheLuceneSolr(Query query, String fieldName) {
    assertTrue(query instanceof SpanNearQuery);
    final SpanNearQuery snq = (SpanNearQuery) query;
    assertEquals(fieldName, snq.getField());
    assertEquals(42, snq.getSlop());//ww w .ja  va2 s . c o m
    assertFalse(snq.isInOrder());
    assertEquals(3, snq.getClauses().length);
    assertTrue(snq.getClauses()[0] instanceof SpanTermQuery);
    assertTrue(snq.getClauses()[1] instanceof SpanTermQuery);
    assertTrue(snq.getClauses()[2] instanceof SpanTermQuery);
}

From source file:org.elasticsearch.index.query.json.SimpleJsonIndexQueryParserTests.java

License:Apache License

@Test
public void testSpanNearQueryBuilder() throws IOException {
    IndexQueryParser queryParser = newQueryParser();
    Query parsedQuery = queryParser
            .parse(spanNearQuery().clause(spanTermQuery("age", 34)).clause(spanTermQuery("age", 35))
                    .clause(spanTermQuery("age", 36)).slop(12).inOrder(false).collectPayloads(false));
    assertThat(parsedQuery, instanceOf(SpanNearQuery.class));
    SpanNearQuery spanNearQuery = (SpanNearQuery) parsedQuery;
    assertThat(spanNearQuery.getClauses().length, equalTo(3));
    assertThat(((SpanTermQuery) spanNearQuery.getClauses()[0]).getTerm(),
            equalTo(new Term("age", NumericUtils.longToPrefixCoded(34))));
    assertThat(((SpanTermQuery) spanNearQuery.getClauses()[1]).getTerm(),
            equalTo(new Term("age", NumericUtils.longToPrefixCoded(35))));
    assertThat(((SpanTermQuery) spanNearQuery.getClauses()[2]).getTerm(),
            equalTo(new Term("age", NumericUtils.longToPrefixCoded(36))));
    assertThat(spanNearQuery.isInOrder(), equalTo(false));
}

From source file:org.elasticsearch.index.query.json.SimpleJsonIndexQueryParserTests.java

License:Apache License

@Test
public void testSpanNearQuery() throws IOException {
    IndexQueryParser queryParser = newQueryParser();
    String query = copyToStringFromClasspath("/org/elasticsearch/index/query/json/spanNear.json");
    Query parsedQuery = queryParser.parse(query);
    assertThat(parsedQuery, instanceOf(SpanNearQuery.class));
    SpanNearQuery spanNearQuery = (SpanNearQuery) parsedQuery;
    assertThat(spanNearQuery.getClauses().length, equalTo(3));
    assertThat(((SpanTermQuery) spanNearQuery.getClauses()[0]).getTerm(),
            equalTo(new Term("age", NumericUtils.longToPrefixCoded(34))));
    assertThat(((SpanTermQuery) spanNearQuery.getClauses()[1]).getTerm(),
            equalTo(new Term("age", NumericUtils.longToPrefixCoded(35))));
    assertThat(((SpanTermQuery) spanNearQuery.getClauses()[2]).getTerm(),
            equalTo(new Term("age", NumericUtils.longToPrefixCoded(36))));
    assertThat(spanNearQuery.isInOrder(), equalTo(false));
}

From source file:org.elasticsearch.index.query.SimpleIndexQueryParserTests.java

License:Apache License

@Test
public void testSpanNearQueryBuilder() throws IOException {
    IndexQueryParserService queryParser = queryParser();
    Query parsedQuery = queryParser
            .parse(spanNearQuery().clause(spanTermQuery("age", 34)).clause(spanTermQuery("age", 35))
                    .clause(spanTermQuery("age", 36)).slop(12).inOrder(false).collectPayloads(false))
            .query();//w w  w  .jav  a2  s  .c  o m
    assertThat(parsedQuery, instanceOf(SpanNearQuery.class));
    SpanNearQuery spanNearQuery = (SpanNearQuery) parsedQuery;
    assertThat(spanNearQuery.getClauses().length, equalTo(3));
    assertThat(((SpanTermQuery) spanNearQuery.getClauses()[0]).getTerm(),
            equalTo(new Term("age", longToPrefixCoded(34, 0))));
    assertThat(((SpanTermQuery) spanNearQuery.getClauses()[1]).getTerm(),
            equalTo(new Term("age", longToPrefixCoded(35, 0))));
    assertThat(((SpanTermQuery) spanNearQuery.getClauses()[2]).getTerm(),
            equalTo(new Term("age", longToPrefixCoded(36, 0))));
    assertThat(spanNearQuery.isInOrder(), equalTo(false));
}

From source file:org.elasticsearch.index.query.SimpleIndexQueryParserTests.java

License:Apache License

@Test
public void testSpanNearQuery() throws IOException {
    IndexQueryParserService queryParser = queryParser();
    String query = copyToStringFromClasspath("/org/elasticsearch/index/query/spanNear.json");
    Query parsedQuery = queryParser.parse(query).query();
    assertThat(parsedQuery, instanceOf(SpanNearQuery.class));
    SpanNearQuery spanNearQuery = (SpanNearQuery) parsedQuery;
    assertThat(spanNearQuery.getClauses().length, equalTo(3));
    assertThat(((SpanTermQuery) spanNearQuery.getClauses()[0]).getTerm(),
            equalTo(new Term("age", longToPrefixCoded(34, 0))));
    assertThat(((SpanTermQuery) spanNearQuery.getClauses()[1]).getTerm(),
            equalTo(new Term("age", longToPrefixCoded(35, 0))));
    assertThat(((SpanTermQuery) spanNearQuery.getClauses()[2]).getTerm(),
            equalTo(new Term("age", longToPrefixCoded(36, 0))));
    assertThat(spanNearQuery.isInOrder(), equalTo(false));
}

From source file:org.elasticsearch.index.query.SimpleIndexQueryParserTests.java

License:Apache License

@Test
public void testFieldMaskingSpanQuery() throws IOException {
    IndexQueryParserService queryParser = queryParser();
    String query = copyToStringFromClasspath("/org/elasticsearch/index/query/spanFieldMaskingTerm.json");
    Query parsedQuery = queryParser.parse(query).query();
    assertThat(parsedQuery, instanceOf(SpanNearQuery.class));
    SpanNearQuery spanNearQuery = (SpanNearQuery) parsedQuery;
    assertThat(spanNearQuery.getClauses().length, equalTo(3));
    assertThat(((SpanTermQuery) spanNearQuery.getClauses()[0]).getTerm(),
            equalTo(new Term("age", longToPrefixCoded(34, 0))));
    assertThat(((SpanTermQuery) spanNearQuery.getClauses()[1]).getTerm(),
            equalTo(new Term("age", longToPrefixCoded(35, 0))));
    assertThat(((SpanTermQuery) ((FieldMaskingSpanQuery) spanNearQuery.getClauses()[2]).getMaskedQuery())
            .getTerm(), equalTo(new Term("age_1", "36")));
    assertThat(spanNearQuery.isInOrder(), equalTo(false));
}

From source file:org.elasticsearch.index.query.SpanGapQueryBuilderTests.java

License:Apache License

@Override
protected void doAssertLuceneQuery(SpanNearQueryBuilder queryBuilder, Query query, SearchContext context)
        throws IOException {
    assertThat(query, either(instanceOf(SpanNearQuery.class)).or(instanceOf(SpanTermQuery.class))
            .or(instanceOf(SpanBoostQuery.class)).or(instanceOf(MatchAllQueryBuilder.class)));
    if (query instanceof SpanNearQuery) {
        SpanNearQuery spanNearQuery = (SpanNearQuery) query;
        assertThat(spanNearQuery.getSlop(), equalTo(queryBuilder.slop()));
        assertThat(spanNearQuery.isInOrder(), equalTo(queryBuilder.inOrder()));
        assertThat(spanNearQuery.getClauses().length, equalTo(queryBuilder.clauses().size()));
        Iterator<SpanQueryBuilder> spanQueryBuilderIterator = queryBuilder.clauses().iterator();
        for (SpanQuery spanQuery : spanNearQuery.getClauses()) {
            SpanQueryBuilder spanQB = spanQueryBuilderIterator.next();
            if (spanQB instanceof SpanGapQueryBuilder)
                continue;
            assertThat(spanQuery, equalTo(spanQB.toQuery(context.getQueryShardContext())));
        }/*from  www.  ja va2s .  c o m*/
    } else if (query instanceof SpanTermQuery || query instanceof SpanBoostQuery) {
        assertThat(queryBuilder.clauses().size(), equalTo(1));
        assertThat(query, equalTo(queryBuilder.clauses().get(0).toQuery(context.getQueryShardContext())));
    }
}

From source file:org.elasticsearch.index.query.SpanNearQueryBuilderTests.java

License:Apache License

@Override
protected void doAssertLuceneQuery(SpanNearQueryBuilder queryBuilder, Query query, QueryShardContext context)
        throws IOException {
    assertThat(query, instanceOf(SpanNearQuery.class));
    SpanNearQuery spanNearQuery = (SpanNearQuery) query;
    assertThat(spanNearQuery.getSlop(), equalTo(queryBuilder.slop()));
    assertThat(spanNearQuery.isInOrder(), equalTo(queryBuilder.inOrder()));
    assertThat(spanNearQuery.getClauses().length, equalTo(queryBuilder.clauses().size()));
    Iterator<SpanQueryBuilder> spanQueryBuilderIterator = queryBuilder.clauses().iterator();
    for (SpanQuery spanQuery : spanNearQuery.getClauses()) {
        assertThat(spanQuery, equalTo(spanQueryBuilderIterator.next().toQuery(context)));
    }/*from   ww w. j a  va  2s . co m*/
}

From source file:org.elasticsearch.index.query.xcontent.SimpleIndexQueryParserTests.java

License:Apache License

@Test
public void testSpanNearQueryBuilder() throws IOException {
    IndexQueryParser queryParser = queryParser();
    Query parsedQuery = queryParser
            .parse(spanNearQuery().clause(spanTermQuery("age", 34)).clause(spanTermQuery("age", 35))
                    .clause(spanTermQuery("age", 36)).slop(12).inOrder(false).collectPayloads(false))
            .query();//from w  w  w.ja v a2  s.co  m
    assertThat(parsedQuery, instanceOf(SpanNearQuery.class));
    SpanNearQuery spanNearQuery = (SpanNearQuery) parsedQuery;
    assertThat(spanNearQuery.getClauses().length, equalTo(3));
    assertThat(((SpanTermQuery) spanNearQuery.getClauses()[0]).getTerm(),
            equalTo(new Term("age", NumericUtils.longToPrefixCoded(34))));
    assertThat(((SpanTermQuery) spanNearQuery.getClauses()[1]).getTerm(),
            equalTo(new Term("age", NumericUtils.longToPrefixCoded(35))));
    assertThat(((SpanTermQuery) spanNearQuery.getClauses()[2]).getTerm(),
            equalTo(new Term("age", NumericUtils.longToPrefixCoded(36))));
    assertThat(spanNearQuery.isInOrder(), equalTo(false));
}