Example usage for org.apache.solr.common.params GroupParams GROUP_MAIN

List of usage examples for org.apache.solr.common.params GroupParams GROUP_MAIN

Introduction

In this page you can find the example usage for org.apache.solr.common.params GroupParams GROUP_MAIN.

Prototype

String GROUP_MAIN

To view the source code for org.apache.solr.common.params GroupParams GROUP_MAIN.

Click Source Link

Document

treat the first group result as the main result.

Usage

From source file:at.pagu.soldockr.core.QueryParser.java

License:Apache License

private void appendGroupByFields(SolrQuery solrQuery, List<Field> fields) {
    if (CollectionUtils.isEmpty(fields)) {
        return;/*from   w  w w  .j  av  a2 s .  c  om*/
    }

    if (fields.size() > 1) {
        // there is a bug in solj which prevents multiple grouping
        // although available via HTTP call
        throw new ApiUsageException(
                "Cannot group on more than one field with current SolrJ API. Group on single field insead");
    }

    solrQuery.set(GroupParams.GROUP, true);
    solrQuery.setParam(GroupParams.GROUP_MAIN, true);

    for (Field field : fields) {
        solrQuery.add(GroupParams.GROUP_FIELD, field.getName());
    }
}

From source file:at.pagu.soldockr.core.QueryParserTest.java

License:Apache License

private void assertGroupingNotPresent(SolrQuery solrQuery) {
    Assert.assertNull(solrQuery.get(GroupParams.GROUP));
    Assert.assertNull(solrQuery.get(GroupParams.GROUP_FIELD));
    Assert.assertNull(solrQuery.get(GroupParams.GROUP_MAIN));
}

From source file:at.pagu.soldockr.core.QueryParserTest.java

License:Apache License

private void assertGroupingPresent(SolrQuery solrQuery, String expected) {
    Assert.assertNotNull(solrQuery.get(GroupParams.GROUP));
    Assert.assertNotNull(solrQuery.get(GroupParams.GROUP_FIELD));
    Assert.assertNotNull(solrQuery.get(GroupParams.GROUP_MAIN));
    Assert.assertEquals(expected, solrQuery.get(GroupParams.GROUP_FIELD));
}

From source file:com.frank.search.solr.core.DefaultQueryParser.java

License:Apache License

private void processGroupOptions(SolrQuery solrQuery, Query query) {

    GroupOptions groupOptions = query.getGroupOptions();

    if (groupOptions == null || (CollectionUtils.isEmpty(groupOptions.getGroupByFields())
            && CollectionUtils.isEmpty(groupOptions.getGroupByFunctions())
            && CollectionUtils.isEmpty(groupOptions.getGroupByQueries()))) {
        return;/*from ww w .  j  a va  2  s  .  c o m*/
    }

    solrQuery.set(GroupParams.GROUP, true);
    solrQuery.set(GroupParams.GROUP_MAIN, groupOptions.isGroupMain());
    solrQuery.set(GroupParams.GROUP_FORMAT, "grouped");

    if (!CollectionUtils.isEmpty(groupOptions.getGroupByFields())) {
        for (Field field : groupOptions.getGroupByFields()) {
            solrQuery.add(GroupParams.GROUP_FIELD, field.getName());
        }
    }

    if (!CollectionUtils.isEmpty(groupOptions.getGroupByFunctions())) {
        for (Function function : groupOptions.getGroupByFunctions()) {
            String functionFragment = createFunctionFragment(function, 0);
            setObjectNameOnGroupQuery(query, function, functionFragment);
            solrQuery.add(GroupParams.GROUP_FUNC, functionFragment);
        }
    }

    if (!CollectionUtils.isEmpty(groupOptions.getGroupByQueries())) {
        for (Query groupQuery : groupOptions.getGroupByQueries()) {
            String queryFragment = getQueryString(groupQuery);
            setObjectNameOnGroupQuery(query, groupQuery, queryFragment);
            solrQuery.add(GroupParams.GROUP_QUERY, queryFragment);
        }
    }

    if (groupOptions.getSort() != null) {

        for (Order order : groupOptions.getSort()) {
            solrQuery.add(GroupParams.GROUP_SORT,
                    order.getProperty().trim() + " " + (order.isAscending() ? ORDER.asc : ORDER.desc));
        }
    }

    if (groupOptions.getCachePercent() > 0) {
        solrQuery.add(GroupParams.GROUP_CACHE_PERCENTAGE, String.valueOf(groupOptions.getCachePercent()));
    }

    if (groupOptions.getLimit() != null && groupOptions.getLimit() >= 0) {
        solrQuery.set(GroupParams.GROUP_LIMIT, groupOptions.getLimit());
    }

    if (groupOptions.getOffset() != null && groupOptions.getOffset() >= 0) {
        solrQuery.set(GroupParams.GROUP_OFFSET, groupOptions.getOffset());
    }

    solrQuery.set(GroupParams.GROUP_TOTAL_COUNT, groupOptions.isTotalCount());
    solrQuery.set(GroupParams.GROUP_FACET, groupOptions.isGroupFacets());
    solrQuery.set(GroupParams.GROUP_TRUNCATE, groupOptions.isTruncateFacets());
}

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

License:Apache License

private void assertGroupFormatPresent(SolrQuery solrQuery, boolean groupTotalCount) {
    Assert.assertEquals("true", solrQuery.get(GroupParams.GROUP));
    Assert.assertEquals("false", solrQuery.get(GroupParams.GROUP_MAIN));
    Assert.assertEquals("grouped", solrQuery.get(GroupParams.GROUP_FORMAT));
    Assert.assertEquals(String.valueOf(groupTotalCount), solrQuery.get(GroupParams.GROUP_TOTAL_COUNT));
}