Example usage for org.springframework.data.solr.core.query SimpleQuery setGroupOptions

List of usage examples for org.springframework.data.solr.core.query SimpleQuery setGroupOptions

Introduction

In this page you can find the example usage for org.springframework.data.solr.core.query SimpleQuery setGroupOptions.

Prototype

@SuppressWarnings("unchecked")
    @Override
    public <T extends Query> T setGroupOptions(GroupOptions groupOptions) 

Source Link

Usage

From source file:org.springframework.data.solr.core.DefaultQueryParserTests.java

/**
 * @see DATASOLR-121/*w  w  w. j a  v a2s.  c  om*/
 */
@Test
public void testConstructGroupQueryWithAllPossibleParameters() {
    GroupOptions groupOptions = new GroupOptions();

    SimpleQuery query = new SimpleQuery();
    query.addCriteria(new SimpleStringCriteria("*:*"));
    query.setGroupOptions(groupOptions);
    groupOptions.setOffset(1);
    groupOptions.setLimit(2);
    groupOptions.addGroupByField("field_1");
    groupOptions.addGroupByFunction(MaxFunction.max("field_1", "field_2"));
    groupOptions.addGroupByQuery(new SimpleQuery("*:*"));
    groupOptions.addSort(new Sort(Sort.Direction.DESC, "field_3"));
    groupOptions.setTotalCount(true);

    SolrQuery solrQuery = queryParser.constructSolrQuery(query);

    assertGroupFormatPresent(solrQuery, true);
    Assert.assertEquals("field_1", solrQuery.get(GroupParams.GROUP_FIELD));
    Assert.assertEquals("{!func}max(field_1,field_2)", solrQuery.get(GroupParams.GROUP_FUNC));
    Assert.assertEquals("*:*", solrQuery.get(GroupParams.GROUP_QUERY));
    Assert.assertEquals("field_3 desc", solrQuery.get(GroupParams.GROUP_SORT));
    Assert.assertEquals("1", solrQuery.get(GroupParams.GROUP_OFFSET));
    Assert.assertEquals("2", solrQuery.get(GroupParams.GROUP_LIMIT));
}

From source file:org.springframework.data.solr.core.DefaultQueryParserTests.java

/**
 * @see DATASOLR-121//from w w w.j a v  a  2 s.c  o  m
 */
@Test
public void testConstructGroupQueryWithoutPagingParameters() {
    SimpleQuery query = new SimpleQuery();
    query.addCriteria(new SimpleStringCriteria("*:*"));
    query.setGroupOptions(new GroupOptions().addGroupByField("fieldName"));

    SolrQuery solrQuery = queryParser.constructSolrQuery(query);

    assertGroupFormatPresent(solrQuery, false);
    Assert.assertNull(solrQuery.get(GroupParams.GROUP_SORT));
    Assert.assertNull(solrQuery.get(GroupParams.GROUP_OFFSET));
    Assert.assertNull(solrQuery.get(GroupParams.GROUP_LIMIT));
}

From source file:org.springframework.data.solr.core.DefaultQueryParserTests.java

/**
 * @see DATASOLR-121/*  www.  ja  v a 2 s .  co m*/
 */
@Test
public void testConstructGroupQueryWithMultipleFunctions() {
    SimpleQuery query = new SimpleQuery();
    query.addCriteria(new SimpleStringCriteria("*:*"));
    query.setGroupOptions(new GroupOptions());
    query.getGroupOptions().addGroupByFunction(MaxFunction.max("field_1", "field_2"));
    query.getGroupOptions().addGroupByFunction(MaxFunction.max("field_3", "field_4"));

    SolrQuery solrQuery = queryParser.constructSolrQuery(query);

    assertGroupFormatPresent(solrQuery, false);
    Assert.assertArrayEquals(new String[] { "{!func}max(field_1,field_2)", "{!func}max(field_3,field_4)" },
            solrQuery.getParams(GroupParams.GROUP_FUNC));
    Assert.assertNull(solrQuery.getParams(GroupParams.GROUP_QUERY));
    Assert.assertNull(solrQuery.getParams(GroupParams.GROUP_FIELD));
}

From source file:org.springframework.data.solr.core.DefaultQueryParserTests.java

/**
 * @see DATASOLR-121//from w ww.ja  v a2 s  . c  o  m
 */
@Test
public void testConstructGroupQueryWithMultipleQueries() {
    SimpleQuery query = new SimpleQuery();
    query.addCriteria(new SimpleStringCriteria("*:*"));
    query.setGroupOptions(new GroupOptions());
    query.getGroupOptions().addGroupByQuery(new SimpleQuery("query1"));
    query.getGroupOptions().addGroupByQuery(new SimpleQuery("query2"));

    SolrQuery solrQuery = queryParser.constructSolrQuery(query);

    assertGroupFormatPresent(solrQuery, false);
    Assert.assertArrayEquals(new String[] { "query1", "query2" }, solrQuery.getParams(GroupParams.GROUP_QUERY));
    Assert.assertNull(solrQuery.getParams(GroupParams.GROUP_FUNC));
    Assert.assertNull(solrQuery.getParams(GroupParams.GROUP_FIELD));
}