Example usage for org.apache.lucene.search BooleanQuery clauses

List of usage examples for org.apache.lucene.search BooleanQuery clauses

Introduction

In this page you can find the example usage for org.apache.lucene.search BooleanQuery clauses.

Prototype

List clauses

To view the source code for org.apache.lucene.search BooleanQuery clauses.

Click Source Link

Usage

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

License:Apache License

public void testToQueryMultipleFieldsBooleanQuery() throws Exception {
    assumeTrue("test runs only when at least a type is registered", getCurrentTypes().length > 0);
    Query query = queryStringQuery("test").field(STRING_FIELD_NAME).field(STRING_FIELD_NAME_2).useDisMax(false)
            .toQuery(createShardContext());
    assertThat(query, instanceOf(BooleanQuery.class));
    BooleanQuery bQuery = (BooleanQuery) query;
    assertThat(bQuery.clauses().size(), equalTo(2));
    assertThat(assertBooleanSubQuery(query, TermQuery.class, 0).getTerm(),
            equalTo(new Term(STRING_FIELD_NAME, "test")));
    assertThat(assertBooleanSubQuery(query, TermQuery.class, 1).getTerm(),
            equalTo(new Term(STRING_FIELD_NAME_2, "test")));
}

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

License:Apache License

public void testToQueryFieldsWildcard() throws Exception {
    assumeTrue("test runs only when at least a type is registered", getCurrentTypes().length > 0);
    Query query = queryStringQuery("test").field("mapped_str*").useDisMax(false).toQuery(createShardContext());
    assertThat(query, instanceOf(BooleanQuery.class));
    BooleanQuery bQuery = (BooleanQuery) query;
    assertThat(bQuery.clauses().size(), equalTo(2));
    assertThat(assertBooleanSubQuery(query, TermQuery.class, 0).getTerm(),
            equalTo(new Term(STRING_FIELD_NAME, "test")));
    assertThat(assertBooleanSubQuery(query, TermQuery.class, 1).getTerm(),
            equalTo(new Term(STRING_FIELD_NAME_2, "test")));
}

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

License:Apache License

public void testToQueryBooleanQueryMultipleBoosts() throws Exception {
    assumeTrue("test runs only when at least a type is registered", getCurrentTypes().length > 0);
    int numBoosts = randomIntBetween(2, 10);
    float[] boosts = new float[numBoosts + 1];
    String queryStringPrefix = "";
    String queryStringSuffix = "";
    for (int i = 0; i < boosts.length - 1; i++) {
        float boost = 2.0f / randomIntBetween(3, 20);
        boosts[i] = boost;/*from w w  w. j a  va 2  s.c o m*/
        queryStringPrefix += "(";
        queryStringSuffix += ")^" + boost;
    }
    String queryString = queryStringPrefix + "foo bar" + queryStringSuffix;

    float mainBoost = 2.0f / randomIntBetween(3, 20);
    boosts[boosts.length - 1] = mainBoost;
    QueryStringQueryBuilder queryStringQueryBuilder = new QueryStringQueryBuilder(queryString)
            .field(STRING_FIELD_NAME).minimumShouldMatch("2").boost(mainBoost);
    Query query = queryStringQueryBuilder.toQuery(createShardContext());

    for (int i = boosts.length - 1; i >= 0; i--) {
        assertThat(query, instanceOf(BoostQuery.class));
        BoostQuery boostQuery = (BoostQuery) query;
        assertThat(boostQuery.getBoost(), equalTo(boosts[i]));
        query = boostQuery.getQuery();
    }

    assertThat(query, instanceOf(BooleanQuery.class));
    BooleanQuery booleanQuery = (BooleanQuery) query;
    assertThat(booleanQuery.getMinimumNumberShouldMatch(), equalTo(2));
    assertThat(booleanQuery.clauses().get(0).getOccur(), equalTo(BooleanClause.Occur.SHOULD));
    assertThat(booleanQuery.clauses().get(0).getQuery(),
            equalTo(new TermQuery(new Term(STRING_FIELD_NAME, "foo"))));
    assertThat(booleanQuery.clauses().get(1).getOccur(), equalTo(BooleanClause.Occur.SHOULD));
    assertThat(booleanQuery.clauses().get(1).getQuery(),
            equalTo(new TermQuery(new Term(STRING_FIELD_NAME, "bar"))));
}

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

License:Apache License

@Test
public void testQueryStringFields1Builder() throws Exception {
    IndexQueryParserService queryParser = queryParser();
    Query parsedQuery = queryParser.parse(queryString("test").field("content").field("name").useDisMax(false))
            .query();/*from   w ww  .j  a  v  a2 s.  c om*/
    assertThat(parsedQuery, instanceOf(BooleanQuery.class));
    BooleanQuery bQuery = (BooleanQuery) parsedQuery;
    assertThat(bQuery.clauses().size(), equalTo(2));
    assertThat(assertBooleanSubQuery(parsedQuery, TermQuery.class, 0).getTerm(),
            equalTo(new Term("content", "test")));
    assertThat(assertBooleanSubQuery(parsedQuery, TermQuery.class, 1).getTerm(),
            equalTo(new Term("name", "test")));
}

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

License:Apache License

@Test
public void testQueryStringFields1() throws Exception {
    IndexQueryParserService queryParser = queryParser();
    String query = copyToStringFromClasspath("/org/elasticsearch/index/query/query-fields1.json");
    Query parsedQuery = queryParser.parse(query).query();
    assertThat(parsedQuery, instanceOf(BooleanQuery.class));
    BooleanQuery bQuery = (BooleanQuery) parsedQuery;
    assertThat(bQuery.clauses().size(), equalTo(2));
    assertThat(assertBooleanSubQuery(parsedQuery, TermQuery.class, 0).getTerm(),
            equalTo(new Term("content", "test")));
    assertThat(assertBooleanSubQuery(parsedQuery, TermQuery.class, 1).getTerm(),
            equalTo(new Term("name", "test")));
}

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

License:Apache License

@Test
public void testQueryStringFieldsMatch() throws Exception {
    IndexQueryParserService queryParser = queryParser();
    String query = copyToStringFromClasspath("/org/elasticsearch/index/query/query-fields-match.json");
    Query parsedQuery = queryParser.parse(query).query();
    assertThat(parsedQuery, instanceOf(BooleanQuery.class));
    BooleanQuery bQuery = (BooleanQuery) parsedQuery;
    assertThat(bQuery.clauses().size(), equalTo(2));
    assertThat(assertBooleanSubQuery(parsedQuery, TermQuery.class, 0).getTerm(),
            equalTo(new Term("name.first", "test")));
    assertThat(assertBooleanSubQuery(parsedQuery, TermQuery.class, 1).getTerm(),
            equalTo(new Term("name.last", "test")));
}

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

License:Apache License

@Override
protected void doAssertLuceneQuery(SimpleQueryStringBuilder queryBuilder, Query query,
        QueryShardContext context) throws IOException {
    assertThat(query, notNullValue());/*from w w w  .j a  va2  s  .  c o  m*/

    if ("".equals(queryBuilder.value())) {
        assertThat(query, instanceOf(MatchNoDocsQuery.class));
    } else if (queryBuilder.fields().size() > 1) {
        assertThat(query, instanceOf(BooleanQuery.class));
        BooleanQuery boolQuery = (BooleanQuery) query;
        if (queryBuilder.lowercaseExpandedTerms()) {
            for (BooleanClause clause : boolQuery.clauses()) {
                if (clause.getQuery() instanceof TermQuery) {
                    TermQuery inner = (TermQuery) clause.getQuery();
                    assertThat(inner.getTerm().bytes().toString(),
                            is(inner.getTerm().bytes().toString().toLowerCase(Locale.ROOT)));
                }
            }
        }
        assertThat(boolQuery.clauses().size(), equalTo(queryBuilder.fields().size()));
        Iterator<Map.Entry<String, Float>> fieldsIterator = queryBuilder.fields().entrySet().iterator();
        for (BooleanClause booleanClause : boolQuery) {
            Map.Entry<String, Float> field = fieldsIterator.next();
            assertTermOrBoostQuery(booleanClause.getQuery(), field.getKey(), queryBuilder.value(),
                    field.getValue());
        }
        if (queryBuilder.minimumShouldMatch() != null && !boolQuery.isCoordDisabled()) {
            assertThat(boolQuery.getMinimumNumberShouldMatch(), greaterThan(0));
        }
    } else if (queryBuilder.fields().size() == 1) {
        Map.Entry<String, Float> field = queryBuilder.fields().entrySet().iterator().next();
        assertTermOrBoostQuery(query, field.getKey(), queryBuilder.value(), field.getValue());
    } else if (queryBuilder.fields().size() == 0) {
        assertTermQuery(query, MetaData.ALL, queryBuilder.value());
    } else {
        fail("Encountered lucene query type we do not have a validation implementation for in our "
                + SimpleQueryStringBuilderTests.class.getSimpleName());
    }
}

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

License:Apache License

private static int shouldClauses(BooleanQuery query) {
    int result = 0;
    for (BooleanClause c : query.clauses()) {
        if (c.getOccur() == BooleanClause.Occur.SHOULD) {
            result++;/* w w w. j  a  v a 2  s.c om*/
        }
    }
    return result;
}

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

License:Apache License

@Test
public void testQueryStringFields1Builder() throws Exception {
    IndexQueryParser queryParser = queryParser();
    Query parsedQuery = queryParser.parse(queryString("test").field("content").field("name").useDisMax(false))
            .query();//from www.  ja v a2s  . co  m
    assertThat(parsedQuery, instanceOf(BooleanQuery.class));
    BooleanQuery bQuery = (BooleanQuery) parsedQuery;
    assertThat(bQuery.clauses().size(), equalTo(2));
    assertThat(((TermQuery) bQuery.clauses().get(0).getQuery()).getTerm(),
            equalTo(new Term("content", "test")));
    assertThat(((TermQuery) bQuery.clauses().get(1).getQuery()).getTerm(), equalTo(new Term("name", "test")));
}

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

License:Apache License

@Test
public void testQueryStringFields1() throws Exception {
    IndexQueryParser queryParser = queryParser();
    String query = copyToStringFromClasspath("/org/elasticsearch/index/query/xcontent/query-fields1.json");
    Query parsedQuery = queryParser.parse(query).query();
    assertThat(parsedQuery, instanceOf(BooleanQuery.class));
    BooleanQuery bQuery = (BooleanQuery) parsedQuery;
    assertThat(bQuery.clauses().size(), equalTo(2));
    assertThat(((TermQuery) bQuery.clauses().get(0).getQuery()).getTerm(),
            equalTo(new Term("content", "test")));
    assertThat(((TermQuery) bQuery.clauses().get(1).getQuery()).getTerm(), equalTo(new Term("name", "test")));
}