Example usage for org.apache.lucene.search.spans SpanOrQuery getClauses

List of usage examples for org.apache.lucene.search.spans SpanOrQuery getClauses

Introduction

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

Prototype

public SpanQuery[] getClauses() 

Source Link

Document

Return the clauses whose spans are matched.

Usage

From source file:com.o19s.solr.swan.nodes.SwanXOrOperationNode.java

License:Apache License

@Override
public SpanQuery getSpanQuery(String field) {
    SpanOrQuery query = new SpanOrQuery();

    List<SwanNode> inc;//from  ww  w .  j a v  a 2s.c  om
    for (int x = 0; x < _nodes.size(); x++) {
        inc = new ArrayList<SwanNode>();
        inc.addAll(_nodes);
        inc.remove(x);

        SpanOrQuery or = new SpanOrQuery();
        for (SwanNode n : inc) {
            or.addClause(n.getSpanQuery(field));
        }
        if (or.getClauses().length > 0) {
            SpanNotQuery not = new SpanNotQuery(_nodes.get(x).getSpanQuery(field), or);
            query.addClause(not);
        }
    }

    return query;
}

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

License:Apache License

public void testCustomQueryWrapping() throws IOException, ParserException {
    final boolean span = random().nextBoolean();
    // the custom queries
    final String fieldName = "contents";
    final String[] randomTerms = new String[] { "bumble", "honey", "solitary" };
    final String randomQuery = composeChooseOneWordQueryXml(fieldName, randomTerms);
    final String apacheLuceneSolr = "<ApacheLuceneSolr fieldName='" + fieldName + "'/>";
    // the wrapping query
    final String parentQuery = (span ? "SpanOr" : "BooleanQuery");
    final String subQueryPrefix = (span ? "" : "<Clause occurs='must'>");
    final String subQuerySuffix = (span ? "" : "</Clause>");
    final String xml = "<" + parentQuery + ">" + subQueryPrefix + randomQuery + subQuerySuffix + subQueryPrefix
            + apacheLuceneSolr + subQuerySuffix + "</" + parentQuery + ">";
    // the test/*from  ww w. j  a  v a2  s  .  c  om*/
    final Query query = parseXmlString(xml);
    if (span) {
        assertTrue(unwrapSpanBoostQuery(query) instanceof SpanOrQuery);
        final SpanOrQuery soq = (SpanOrQuery) unwrapSpanBoostQuery(query);
        assertEquals(2, soq.getClauses().length);
        checkChooseOneWordQuery(span, soq.getClauses()[0], fieldName, randomTerms);
        checkApacheLuceneSolr(soq.getClauses()[1], fieldName);
    } else {
        assertTrue(query instanceof BooleanQuery);
        final BooleanQuery bq = (BooleanQuery) query;
        assertEquals(2, bq.clauses().size());
        checkChooseOneWordQuery(span, bq.clauses().get(0).getQuery(), fieldName, randomTerms);
        checkApacheLuceneSolr(bq.clauses().get(1).getQuery(), fieldName);
    }
}

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

License:Apache License

@Test
public void testSpanOrQueryBuilder() throws IOException {
    IndexQueryParser queryParser = newQueryParser();
    Query parsedQuery = queryParser.parse(spanOrQuery().clause(spanTermQuery("age", 34))
            .clause(spanTermQuery("age", 35)).clause(spanTermQuery("age", 36)));
    assertThat(parsedQuery, instanceOf(SpanOrQuery.class));
    SpanOrQuery spanOrQuery = (SpanOrQuery) parsedQuery;
    assertThat(spanOrQuery.getClauses().length, equalTo(3));
    assertThat(((SpanTermQuery) spanOrQuery.getClauses()[0]).getTerm(),
            equalTo(new Term("age", NumericUtils.longToPrefixCoded(34))));
    assertThat(((SpanTermQuery) spanOrQuery.getClauses()[1]).getTerm(),
            equalTo(new Term("age", NumericUtils.longToPrefixCoded(35))));
    assertThat(((SpanTermQuery) spanOrQuery.getClauses()[2]).getTerm(),
            equalTo(new Term("age", NumericUtils.longToPrefixCoded(36))));
}

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

License:Apache License

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

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

License:Apache License

@Test
public void testSpanOrQueryBuilder() throws IOException {
    IndexQueryParserService queryParser = queryParser();
    Query parsedQuery = queryParser.parse(spanOrQuery().clause(spanTermQuery("age", 34))
            .clause(spanTermQuery("age", 35)).clause(spanTermQuery("age", 36))).query();
    assertThat(parsedQuery, instanceOf(SpanOrQuery.class));
    SpanOrQuery spanOrQuery = (SpanOrQuery) parsedQuery;
    assertThat(spanOrQuery.getClauses().length, equalTo(3));
    assertThat(((SpanTermQuery) spanOrQuery.getClauses()[0]).getTerm(),
            equalTo(new Term("age", longToPrefixCoded(34, 0))));
    assertThat(((SpanTermQuery) spanOrQuery.getClauses()[1]).getTerm(),
            equalTo(new Term("age", longToPrefixCoded(35, 0))));
    assertThat(((SpanTermQuery) spanOrQuery.getClauses()[2]).getTerm(),
            equalTo(new Term("age", longToPrefixCoded(36, 0))));
}

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

License:Apache License

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

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

License:Apache License

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

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

License:Apache License

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

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

License:Apache License

@Test
public void testSpanOrQueryBuilder() throws IOException {
    IndexQueryParser queryParser = queryParser();
    Query parsedQuery = queryParser.parse(spanOrQuery().clause(spanTermQuery("age", 34))
            .clause(spanTermQuery("age", 35)).clause(spanTermQuery("age", 36))).query();
    assertThat(parsedQuery, instanceOf(SpanOrQuery.class));
    SpanOrQuery spanOrQuery = (SpanOrQuery) parsedQuery;
    assertThat(spanOrQuery.getClauses().length, equalTo(3));
    assertThat(((SpanTermQuery) spanOrQuery.getClauses()[0]).getTerm(),
            equalTo(new Term("age", NumericUtils.longToPrefixCoded(34))));
    assertThat(((SpanTermQuery) spanOrQuery.getClauses()[1]).getTerm(),
            equalTo(new Term("age", NumericUtils.longToPrefixCoded(35))));
    assertThat(((SpanTermQuery) spanOrQuery.getClauses()[2]).getTerm(),
            equalTo(new Term("age", NumericUtils.longToPrefixCoded(36))));
}

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

License:Apache License

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