List of usage examples for org.apache.solr.common.params GroupParams GROUP_SORT
String GROUP_SORT
To view the source code for org.apache.solr.common.params GroupParams GROUP_SORT.
Click Source Link
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 www. ja v a 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
/** * @see DATASOLR-121/*from ww w.j av a2 s .co m*/ */ @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
License:Apache License
/** * @see DATASOLR-121/*from www .ja va2 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)); }