List of usage examples for org.apache.solr.client.solrj.response GroupCommand getMatches
public int getMatches()
From source file:com.frank.search.solr.core.ResultHelper.java
License:Apache License
static <T> Map<Object, GroupResult<T>> convertGroupQueryResponseToGroupResultMap(Query query, Map<String, Object> objectNames, QueryResponse response, SolrTemplate solrTemplate, Class<T> clazz) { GroupResponse groupResponse = response.getGroupResponse(); SolrDocumentList sdl = response.getResults(); if (groupResponse == null) { return Collections.emptyMap(); }// w w w .j a v a2s . c om Map<Object, GroupResult<T>> result = new LinkedHashMap<Object, GroupResult<T>>(); List<GroupCommand> values = groupResponse.getValues(); for (GroupCommand groupCommand : values) { List<GroupEntry<T>> groupEntries = new ArrayList<GroupEntry<T>>(); for (Group group : groupCommand.getValues()) { SolrDocumentList documentList = group.getResult(); List<T> beans = solrTemplate.convertSolrDocumentListToBeans(documentList, clazz); Page<T> page = new PageImpl<T>(beans, query.getGroupOptions().getPageRequest(), documentList.getNumFound()); groupEntries.add(new SimpleGroupEntry<T>(group.getGroupValue(), page)); } int matches = groupCommand.getMatches(); Integer ngroups = groupCommand.getNGroups(); String name = groupCommand.getName(); PageImpl<GroupEntry<T>> page; if (ngroups != null) { page = new PageImpl<GroupEntry<T>>(groupEntries, query.getPageRequest(), ngroups.intValue()); } else { page = new PageImpl<GroupEntry<T>>(groupEntries); } SimpleGroupResult<T> groupResult = new SimpleGroupResult<T>(matches, ngroups, name, page); result.put(name, groupResult); if (objectNames.containsKey(name)) { result.put(objectNames.get(name), groupResult); } } return result; }
From source file:com.nridge.ds.solr.SolrResponseBuilder.java
License:Open Source License
private void populateGroupResponse(QueryResponse aQueryResponse) { Logger appLogger = mAppMgr.getLogger(this, "populateGroupResponse"); appLogger.trace(mAppMgr.LOGMSG_TRACE_ENTER); GroupResponse groupResponse = aQueryResponse.getGroupResponse(); if (groupResponse != null) { mDocument.addRelationship(Solr.RESPONSE_GROUP, createGroupsBag()); Relationship groupRelationship = mDocument.getFirstRelationship(Solr.RESPONSE_GROUP); if (groupRelationship != null) { DataBag groupingBag = groupRelationship.getBag(); List<GroupCommand> groupCommandList = groupResponse.getValues(); if (groupCommandList != null) { String groupName; DataField dfGroupName = groupingBag.getFieldByName("group_name"); groupingBag.setValueByName("group_total", groupCommandList.size()); for (GroupCommand groupCommand : groupCommandList) { groupName = groupCommand.getName(); if (StringUtils.isNotEmpty(groupName)) dfGroupName.addValue(groupName); groupingBag.setValueByName("group_matches", groupCommand.getMatches()); List<Group> groupList = groupCommand.getValues(); if (groupList != null) { for (Group groupMember : groupList) groupRelationship.add(createGroupCollectionDocument(groupMember)); }//from ww w. j a va 2 s .c o m } } } } appLogger.trace(mAppMgr.LOGMSG_TRACE_DEPART); }
From source file:com.yaotrue.learn.solr.SolrjTest.java
License:Apache License
@Test public void testGroup() throws SolrServerException, IOException { SolrQuery solrQuery = new SolrQuery("*:*"); solrQuery.set(GroupParams.GROUP, true); solrQuery.set(GroupParams.GROUP_TOTAL_COUNT, true); solrQuery.set(GroupParams.GROUP_LIMIT, 12); solrQuery.set(GroupParams.GROUP_FORMAT, "grouped"); solrQuery.set(GroupParams.GROUP_FACET, true); solrQuery.set(GroupParams.GROUP_FIELD, "style"); QueryResponse queryResponse = solrClient.query(solrQuery); GroupResponse groupResponse = queryResponse.getGroupResponse(); if (null != groupResponse) { List<GroupCommand> groupCommandList = groupResponse.getValues(); for (GroupCommand groupCommand : groupCommandList) { int matches = groupCommand.getMatches(); String name = groupCommand.getName(); Integer ngroups = groupCommand.getNGroups(); List<Group> groupList = groupCommand.getValues(); for (Group group : groupList) { SolrDocumentList solrDocumentList = group.getResult(); ListIterator<SolrDocument> listIterator = solrDocumentList.listIterator(); while (listIterator.hasNext()) { SolrDocument solrDocument = listIterator.next(); System.out.println(solrDocument.get("code")); }//from w w w .j a v a 2 s . co m } } } }
From source file:org.springframework.data.solr.core.ResultHelper.java
License:Apache License
static <T> Map<Object, GroupResult<T>> convertGroupQueryResponseToGroupResultMap(Query query, Map<String, Object> objectNames, QueryResponse response, SolrTemplate solrTemplate, Class<T> clazz) { GroupResponse groupResponse = response.getGroupResponse(); if (groupResponse == null) { return Collections.emptyMap(); }/*www . j a v a2 s.com*/ Map<Object, GroupResult<T>> result = new LinkedHashMap<Object, GroupResult<T>>(); List<GroupCommand> values = groupResponse.getValues(); for (GroupCommand groupCommand : values) { List<GroupEntry<T>> groupEntries = new ArrayList<GroupEntry<T>>(); for (Group group : groupCommand.getValues()) { SolrDocumentList documentList = group.getResult(); List<T> beans = solrTemplate.convertSolrDocumentListToBeans(documentList, clazz); Page<T> page = new PageImpl<T>(beans, query.getGroupOptions().getPageRequest(), documentList.getNumFound()); groupEntries.add(new SimpleGroupEntry<T>(group.getGroupValue(), page)); } int matches = groupCommand.getMatches(); Integer ngroups = groupCommand.getNGroups(); String name = groupCommand.getName(); PageImpl<GroupEntry<T>> page; if (ngroups != null) { page = new PageImpl<GroupEntry<T>>(groupEntries, query.getPageRequest(), ngroups.intValue()); } else { page = new PageImpl<GroupEntry<T>>(groupEntries); } SimpleGroupResult<T> groupResult = new SimpleGroupResult<T>(matches, ngroups, name, page); result.put(name, groupResult); if (objectNames.containsKey(name)) { result.put(objectNames.get(name), groupResult); } } return result; }
From source file:org.springframework.data.solr.core.ResultHelperTests.java
License:Apache License
/** * @see DATASOLR-121//from w ww . j a v a 2s . c o m */ @Test public void testConvertGroupQueryResponseToGroupResultList() { GroupResponse groupResponse = Mockito.mock(GroupResponse.class); Query query = Mockito.mock(Query.class); SolrTemplate solrTemplate = Mockito.mock(SolrTemplate.class); GroupCommand groupCommand1 = Mockito.mock(GroupCommand.class); Group group1_1 = Mockito.mock(Group.class); SolrDocumentList group1_1DocumentList = Mockito.mock(SolrDocumentList.class); List<Object> documents1_1 = Arrays.asList(new Object()); Mockito.when(response.getGroupResponse()).thenReturn(groupResponse); Mockito.when(groupResponse.getValues()).thenReturn(Arrays.asList(groupCommand1)); Mockito.when(groupCommand1.getValues()).thenReturn(Arrays.asList(group1_1)); Mockito.when(group1_1.getResult()).thenReturn(group1_1DocumentList); Mockito.when(group1_1.getGroupValue()).thenReturn("group1_1_value"); Mockito.when(group1_1DocumentList.getNumFound()).thenReturn(3L); Mockito.when(solrTemplate.convertSolrDocumentListToBeans(group1_1DocumentList, Object.class)) .thenReturn(documents1_1); Mockito.when(groupCommand1.getMatches()).thenReturn(1); Mockito.when(groupCommand1.getName()).thenReturn("group1_name"); Mockito.when(groupCommand1.getNGroups()).thenReturn(2); GroupOptions groupOptions = new GroupOptions(); groupOptions.setLimit(1); Mockito.when(query.getPageRequest()).thenReturn(new PageRequest(0, 1)); Mockito.when(query.getGroupOptions()).thenReturn(groupOptions); Object group1Key = new Object(); Map<String, Object> objectNames = new HashMap<String, Object>(); objectNames.put("group1_name", group1Key); Map<Object, GroupResult<Object>> result = ResultHelper.convertGroupQueryResponseToGroupResultMap(query, objectNames, response, solrTemplate, Object.class); Assert.assertNotNull(result); Assert.assertEquals(2, result.size()); GroupResult<Object> groupResult = result.get("group1_name"); Assert.assertEquals(groupResult, result.get(group1Key)); Assert.assertEquals("group1_name", groupResult.getName()); Assert.assertEquals(1, groupResult.getMatches()); Assert.assertEquals(Integer.valueOf(2), groupResult.getGroupsCount()); Page<GroupEntry<Object>> groupEntries = groupResult.getGroupEntries(); Assert.assertEquals(2, groupEntries.getTotalElements()); Assert.assertEquals(2, groupEntries.getTotalPages()); Assert.assertEquals(true, groupEntries.hasNext()); List<GroupEntry<Object>> groupEntriesContent = groupEntries.getContent(); Assert.assertNotNull(groupEntriesContent); Assert.assertEquals(1, groupEntriesContent.size()); GroupEntry<Object> groupEntriesContentElement = groupEntriesContent.get(0); Assert.assertEquals("group1_1_value", groupEntriesContentElement.getGroupValue()); Page<Object> group1result = groupEntriesContentElement.getResult(); Assert.assertEquals(3, group1result.getTotalElements()); Assert.assertEquals(3, group1result.getTotalPages()); Assert.assertEquals(true, group1result.hasNext()); }
From source file:org.springframework.data.solr.core.ResultHelperTests.java
License:Apache License
/** * @see DATASOLR-121//from w w w . j a v a2 s. co m */ @Test public void testConvertGroupQueryResponseToGroupResultListWhenNoCountOfGroups() { GroupResponse groupResponse = Mockito.mock(GroupResponse.class); Query query = Mockito.mock(Query.class); SolrTemplate solrTemplate = Mockito.mock(SolrTemplate.class); GroupCommand groupCommand1 = Mockito.mock(GroupCommand.class); Group group1_1 = Mockito.mock(Group.class); SolrDocumentList group1_1DocumentList = Mockito.mock(SolrDocumentList.class); List<Object> documents1_1 = Arrays.asList(new Object()); Mockito.when(response.getGroupResponse()).thenReturn(groupResponse); Mockito.when(groupResponse.getValues()).thenReturn(Arrays.asList(groupCommand1)); Mockito.when(groupCommand1.getValues()).thenReturn(Arrays.asList(group1_1)); Mockito.when(group1_1.getResult()).thenReturn(group1_1DocumentList); Mockito.when(group1_1.getGroupValue()).thenReturn("group1_1_value"); Mockito.when(group1_1DocumentList.getNumFound()).thenReturn(3L); Mockito.when(solrTemplate.convertSolrDocumentListToBeans(group1_1DocumentList, Object.class)) .thenReturn(documents1_1); Mockito.when(groupCommand1.getMatches()).thenReturn(1); Mockito.when(groupCommand1.getName()).thenReturn("group1_name"); Mockito.when(groupCommand1.getNGroups()).thenReturn(null); GroupOptions groupOptions = new GroupOptions(); groupOptions.setLimit(1); Mockito.when(query.getPageRequest()).thenReturn(new PageRequest(0, 1)); Mockito.when(query.getGroupOptions()).thenReturn(groupOptions); Object group1Key = new Object(); Map<String, Object> objectNames = new HashMap<String, Object>(); objectNames.put("group1_name", group1Key); Map<Object, GroupResult<Object>> result = ResultHelper.convertGroupQueryResponseToGroupResultMap(query, objectNames, response, solrTemplate, Object.class); Assert.assertNotNull(result); Assert.assertEquals(2, result.size()); GroupResult<Object> groupResult = result.get("group1_name"); Assert.assertEquals(result.get(group1Key), groupResult); Assert.assertEquals("group1_name", groupResult.getName()); Assert.assertEquals(1, groupResult.getMatches()); Assert.assertEquals(null, groupResult.getGroupsCount()); Page<GroupEntry<Object>> groupEntries = groupResult.getGroupEntries(); Assert.assertEquals(1, groupEntries.getTotalElements()); Assert.assertEquals(1, groupEntries.getTotalPages()); Assert.assertEquals(false, groupEntries.hasNext()); List<GroupEntry<Object>> groupEntriesContent = groupEntries.getContent(); Assert.assertNotNull(groupEntriesContent); Assert.assertEquals(1, groupEntriesContent.size()); GroupEntry<Object> groupEntriesContentElement = groupEntriesContent.get(0); Assert.assertEquals("group1_1_value", groupEntriesContentElement.getGroupValue()); Page<Object> group1result = groupEntriesContentElement.getResult(); Assert.assertEquals(3, group1result.getTotalElements()); Assert.assertEquals(3, group1result.getTotalPages()); Assert.assertEquals(true, group1result.hasNext()); }