Example usage for org.apache.solr.client.solrj.response GroupCommand getMatches

List of usage examples for org.apache.solr.client.solrj.response GroupCommand getMatches

Introduction

In this page you can find the example usage for org.apache.solr.client.solrj.response GroupCommand getMatches.

Prototype

public int getMatches() 

Source Link

Document

Returns the total number of documents found for this command.

Usage

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());
}