List of usage examples for org.apache.solr.client.solrj.response PivotField getCount
public int getCount()
From source file:au.org.ala.biocache.dao.SearchDAOImpl.java
License:Open Source License
/** * Read nested pivot results./*from w w w. j av a 2s. c o m*/ * * @param pfl * @return */ private List<FacetPivotResultDTO> getFacetPivotResults(List<PivotField> pfl) { if (pfl == null || pfl.size() == 0) { return null; } List<FacetPivotResultDTO> list = new ArrayList<FacetPivotResultDTO>(); for (PivotField pf : pfl) { String value = pf.getValue() != null ? pf.getValue().toString() : null; if (pf.getPivot() == null || pf.getPivot().size() == 0) { list.add(new FacetPivotResultDTO(null, null, value, pf.getCount())); } else { list.add(new FacetPivotResultDTO(pf.getPivot().get(0).getField(), getFacetPivotResults(pf.getPivot()), value, pf.getCount())); } } return list; }
From source file:com.frank.search.solr.core.ResultHelper.java
License:Apache License
private static List<FacetPivotFieldEntry> convertPivotResult(List<PivotField> pivotResult) { if (CollectionUtils.isEmpty(pivotResult)) { return Collections.emptyList(); }/*from w w w . j a va2 s. c o m*/ ArrayList<FacetPivotFieldEntry> pivotFieldEntries = new ArrayList<FacetPivotFieldEntry>(); for (PivotField pivotField : pivotResult) { SimpleFacetPivotEntry pivotFieldEntry = new SimpleFacetPivotEntry( new SimpleField(pivotField.getField()), String.valueOf(pivotField.getValue()), pivotField.getCount()); List<PivotField> pivot = pivotField.getPivot(); if (pivot != null) { pivotFieldEntry.setPivot(convertPivotResult(pivot)); } pivotFieldEntries.add(pivotFieldEntry); } return pivotFieldEntries; }
From source file:com.nridge.ds.solr.SolrResponseBuilder.java
License:Open Source License
private int populateFacetPivot(DataTable aTable, String[] aFacetNames, int aRowId, int aParentId, PivotField aPivotField) { Object facetValue;//from w w w .j a v a2 s . c o m FieldRow fieldRow; String fieldName, facetName, facetNameCount; Logger appLogger = mAppMgr.getLogger(this, "populateFacetPivot"); appLogger.trace(mAppMgr.LOGMSG_TRACE_ENTER); if (aPivotField != null) { fieldName = aPivotField.getField(); facetValue = aPivotField.getValue(); if (facetValue == null) facetNameCount = String.format("Unassigned (%s)", aPivotField.getCount()); else { facetName = aPivotField.getValue().toString(); facetNameCount = String.format("%s (%s)", facetName, aPivotField.getCount()); } ArrayList<String> facetValues = null; if (StringUtils.equals(fieldName, aFacetNames[0])) aParentId = 0; else { int rowCount = aTable.rowCount(); if (rowCount > 0) { fieldRow = aTable.getRow(rowCount - 1); facetValues = aTable.getValuesByName(fieldRow, fieldName); if (facetValues != null) { if (facetValues.size() == 0) facetValues = null; else facetValues.add(facetNameCount); } } } if (facetValues == null) { fieldRow = aTable.newRow(); aTable.setValueByName(fieldRow, "id", aRowId + 1); aTable.setValueByName(fieldRow, "parent_id", aParentId); facetValues = aTable.getValuesByName(fieldRow, fieldName); if (facetValues != null) { facetValues.add(facetNameCount); if (facetValues.size() == 1) { aTable.addRow(fieldRow); aRowId = aTable.rowCount(); aParentId = aRowId; } } } if (aPivotField.getPivot() != null) { for (PivotField pivotField : aPivotField.getPivot()) aRowId = populateFacetPivot(aTable, aFacetNames, aRowId, aParentId, pivotField); } } appLogger.trace(mAppMgr.LOGMSG_TRACE_DEPART); return aRowId; }
From source file:fr.cnes.sitools.metacatalogue.representation.GeoJsonMDEORepresentation.java
License:Open Source License
private void writeFacetPivots(JsonGenerator jGenerator, List<PivotField> pivotFields) throws JsonGenerationException, IOException { if (pivotFields == null) { return;/*from w w w.j a v a2 s . co m*/ } jGenerator.writeStartArray(); for (PivotField field : pivotFields) { jGenerator.writeStartObject(); jGenerator.writeStringField("field", field.getField()); jGenerator.writeStringField("value", getValue(field.getField(), field.getValue().toString())); jGenerator.writeNumberField("count", field.getCount()); if (field.getPivot() != null) { jGenerator.writeFieldName("pivot"); writeFacetPivots(jGenerator, field.getPivot()); } jGenerator.writeEndObject(); } jGenerator.writeEndArray(); }
From source file:org.alfresco.solr.query.DistributedAlfrescoSolrFacetingTest.java
License:Open Source License
@Test public void pivotFaceting_mincountMissing_shouldReturnFacetsMincountOne() throws Exception { String jsonQuery = "{\"query\":\"(suggest:a)\",\"locales\":[\"en\"], \"templates\": [{\"name\":\"t1\", \"template\":\"%cm:content\"}], \"authorities\": [\"joel\"], \"tenants\": []}"; putHandleDefaults();/*from w w w . j a v a 2 s. c om*/ QueryResponse queryResponse = query(getDefaultTestClient(), true, jsonQuery, params("qt", "/afts", "shards.qt", "/afts", "start", "0", "rows", "0", "fl", "score,id", "facet", "true", "facet.pivot", "{http://www.alfresco.org/model/content/1.0}content,{http://www.alfresco.org/model/content/1.0}name")); NamedList<List<PivotField>> facetPivot = queryResponse.getFacetPivot(); List<PivotField> firstLevelValues = facetPivot.getVal(0); Assert.assertThat(firstLevelValues.size(), is(2)); PivotField firstLevelPivot0 = firstLevelValues.get(0); Assert.assertThat(firstLevelPivot0.getValue(), is("contenttwo")); Assert.assertThat(firstLevelPivot0.getCount(), is(4)); List<PivotField> firstLevelPivot0Children = firstLevelPivot0.getPivot(); Assert.assertThat(firstLevelPivot0Children.size(), is(1)); PivotField secondLevelPivot0 = firstLevelPivot0Children.get(0); Assert.assertThat(secondLevelPivot0.getValue(), is("nametwo")); Assert.assertThat(secondLevelPivot0.getCount(), is(4)); PivotField firstLevelPivot1 = firstLevelValues.get(1); Assert.assertThat(firstLevelPivot1.getValue(), is("contentone")); Assert.assertThat(firstLevelPivot1.getCount(), is(1)); List<PivotField> firstLevelPivot1Children = firstLevelPivot1.getPivot(); Assert.assertThat(firstLevelPivot1Children.size(), is(1)); PivotField secondLevelPivot1 = firstLevelPivot1Children.get(0); Assert.assertThat(secondLevelPivot1.getValue(), is("nameone")); Assert.assertThat(secondLevelPivot1.getCount(), is(1)); }
From source file:org.alfresco.solr.query.DistributedAlfrescoSolrFacetingTest.java
License:Open Source License
@Test public void pivotFaceting_mincountSetZero_shouldReturnFacetsMincountOne() throws Exception { String jsonQuery = "{\"query\":\"(suggest:a)\",\"locales\":[\"en\"], \"templates\": [{\"name\":\"t1\", \"template\":\"%cm:content\"}], \"authorities\": [\"joel\"], \"tenants\": []}"; putHandleDefaults();/* w w w.j a v a 2 s. c o m*/ QueryResponse queryResponse = query(getDefaultTestClient(), true, jsonQuery, params("qt", "/afts", "shards.qt", "/afts", "start", "0", "rows", "0", "fl", "score,id", "facet", "true", "facet.pivot", "{http://www.alfresco.org/model/content/1.0}content,{http://www.alfresco.org/model/content/1.0}name", "facet.pivot.mincount", "0")); NamedList<List<PivotField>> facetPivot = queryResponse.getFacetPivot(); List<PivotField> firstLevelValues = facetPivot.getVal(0); Assert.assertThat(firstLevelValues.size(), is(2)); PivotField firstLevelPivot0 = firstLevelValues.get(0); Assert.assertThat(firstLevelPivot0.getValue(), is("contenttwo")); Assert.assertThat(firstLevelPivot0.getCount(), is(4)); List<PivotField> firstLevelPivot0Children = firstLevelPivot0.getPivot(); Assert.assertThat(firstLevelPivot0Children.size(), is(1)); PivotField secondLevelPivot0 = firstLevelPivot0Children.get(0); Assert.assertThat(secondLevelPivot0.getValue(), is("nametwo")); Assert.assertThat(secondLevelPivot0.getCount(), is(4)); PivotField firstLevelPivot1 = firstLevelValues.get(1); Assert.assertThat(firstLevelPivot1.getValue(), is("contentone")); Assert.assertThat(firstLevelPivot1.getCount(), is(1)); List<PivotField> firstLevelPivot1Children = firstLevelPivot1.getPivot(); Assert.assertThat(firstLevelPivot1Children.size(), is(1)); PivotField secondLevelPivot1 = firstLevelPivot1Children.get(0); Assert.assertThat(secondLevelPivot1.getValue(), is("nameone")); Assert.assertThat(secondLevelPivot1.getCount(), is(1)); }
From source file:org.alfresco.solr.query.DistributedAlfrescoSolrFacetingTest.java
License:Open Source License
@Test public void pivotFaceting_mincountSetTwo_shouldReturnFacetsOriginalMincount() throws Exception { String jsonQuery = "{\"query\":\"(suggest:a)\",\"locales\":[\"en\"], \"templates\": [{\"name\":\"t1\", \"template\":\"%cm:content\"}], \"authorities\": [\"joel\"], \"tenants\": []}"; putHandleDefaults();/*ww w . ja v a 2 s. co m*/ QueryResponse queryResponse = query(getDefaultTestClient(), true, jsonQuery, params("qt", "/afts", "shards.qt", "/afts", "start", "0", "rows", "0", "fl", "score,id", "facet", "true", "facet.pivot", "{http://www.alfresco.org/model/content/1.0}content,{http://www.alfresco.org/model/content/1.0}name", "facet.pivot.mincount", "2")); NamedList<List<PivotField>> facetPivot = queryResponse.getFacetPivot(); List<PivotField> firstLevelValues = facetPivot.getVal(0); Assert.assertThat(firstLevelValues.size(), is(1)); PivotField firstLevelPivot0 = firstLevelValues.get(0); Assert.assertThat(firstLevelPivot0.getValue(), is("contenttwo")); Assert.assertThat(firstLevelPivot0.getCount(), is(4)); List<PivotField> firstLevelPivot0Children = firstLevelPivot0.getPivot(); Assert.assertThat(firstLevelPivot0Children.size(), is(1)); PivotField secondLevelPivot0 = firstLevelPivot0Children.get(0); Assert.assertThat(secondLevelPivot0.getValue(), is("nametwo")); Assert.assertThat(secondLevelPivot0.getCount(), is(4)); }
From source file:org.apache.drill.exec.store.solr.SolrRecordReader.java
License:Apache License
private int processFacetPivotResponse(List<PivotField> facetPivots) { SolrFacetPivot2ResultSet oSolrFacetPivot2ResultSet = new SolrFacetPivot2ResultSet(); oSolrFacetPivot2ResultSet.build(facetPivots); int resultSeek = 0; int leafNodesSeek = 0; while (!oSolrFacetPivot2ResultSet.isEmpty()) { SolrFacetPivotRecord oSolrFacetPivotRecord = (SolrFacetPivotRecord) oSolrFacetPivot2ResultSet.pop(); PivotField pivotField = oSolrFacetPivotRecord.getPivotField(); String fieldName = pivotField.getField(); Object fieldValue = pivotField.getValue(); ValueVector vv = vectors.get(fieldName); if (oSolrFacetPivotRecord.getPivotSize() == 0) { Map<String, FieldStatsInfo> fieldStatsInfo = pivotField.getFieldStatsInfo(); processRecord(vv, fieldValue, leafNodesSeek); int statsCounter = 0; if (isCountOnlyQuery()) { processCountQuery(vectors.get(String.valueOf(statsCounter)), Long.valueOf(pivotField.getCount()), statsCounter, leafNodesSeek); statsCounter++;//w w w . jav a2s . co m } else { for (SolrAggrParam solrAggrParam : solrAggrParams) { FieldStatsInfo fieldStats = fieldStatsInfo.get(getSolrField(solrAggrParam.getFieldName(), solrScanSpec.getCvSchema().getUniqueKey())); String functionName = solrAggrParam.getFunctionName(); if (fieldStats != null) { processStatsRecord(fieldStats, functionName, statsCounter, leafNodesSeek, solrScanSpec.isGroup()); statsCounter++; if (statsCounter == solrScanSpec.getProjectFieldNames().size()) { break; } } } } leafNodesSeek++; } else { int start = (leafNodesSeek == oSolrFacetPivotRecord.getPivotSize()) ? 0 : Math.abs((leafNodesSeek - oSolrFacetPivotRecord.getPivotSize())); int end = (start == 0) ? leafNodesSeek : (start + oSolrFacetPivotRecord.getPivotSize()); SolrRecordReader.logger.info("Start is : " + start + " End is : " + end); for (int i = start; i < end; i++) { processRecord(vv, fieldValue, i); } resultSeek += oSolrFacetPivotRecord.getPivotSize(); } } return (resultSeek == 0) ? leafNodesSeek : resultSeek; }
From source file:org.apache.metron.solr.dao.SolrSearchDao.java
License:Apache License
protected List<GroupResult> getGroupResults(GroupRequest groupRequest, int index, List<PivotField> pivotFields) { List<Group> groups = groupRequest.getGroups(); List<GroupResult> searchResultGroups = new ArrayList<>(); final GroupOrder groupOrder = groups.get(index).getOrder(); pivotFields.sort((o1, o2) -> {/*from ww w . ja va 2 s. co m*/ String s1 = groupOrder.getGroupOrderType() == GroupOrderType.TERM ? o1.getValue().toString() : Integer.toString(o1.getCount()); String s2 = groupOrder.getGroupOrderType() == GroupOrderType.TERM ? o2.getValue().toString() : Integer.toString(o2.getCount()); if (groupOrder.getSortOrder() == SortOrder.ASC) { return s1.compareTo(s2); } else { return s2.compareTo(s1); } }); for (PivotField pivotField : pivotFields) { GroupResult groupResult = new GroupResult(); groupResult.setKey(pivotField.getValue().toString()); groupResult.setTotal(pivotField.getCount()); Optional<String> scoreField = groupRequest.getScoreField(); if (scoreField.isPresent()) { groupResult.setScore((Double) pivotField.getFieldStatsInfo().get(scoreField.get()).getSum()); } if (index < groups.size() - 1) { groupResult.setGroupedBy(groups.get(index + 1).getField()); groupResult.setGroupResults(getGroupResults(groupRequest, index + 1, pivotField.getPivot())); } searchResultGroups.add(groupResult); } return searchResultGroups; }
From source file:org.apache.metron.solr.dao.SolrSearchDaoTest.java
License:Apache License
@Test public void getGroupResultsShouldProperlyReturnGroupResults() { GroupRequest groupRequest = new GroupRequest(); Group group1 = new Group(); group1.setField("field1"); GroupOrder groupOrder1 = new GroupOrder(); groupOrder1.setSortOrder("ASC"); groupOrder1.setGroupOrderType("TERM"); group1.setOrder(groupOrder1);/*from w ww .j av a 2s . c o m*/ Group group2 = new Group(); group2.setField("field2"); GroupOrder groupOrder2 = new GroupOrder(); groupOrder2.setSortOrder("DESC"); groupOrder2.setGroupOrderType("COUNT"); group2.setOrder(groupOrder2); groupRequest.setGroups(Arrays.asList(group1, group2)); groupRequest.setScoreField("score"); PivotField level1Pivot1 = mock(PivotField.class); PivotField level1Pivot2 = mock(PivotField.class); PivotField level2Pivot1 = mock(PivotField.class); PivotField level2Pivot2 = mock(PivotField.class); FieldStatsInfo level1Pivot1FieldStatsInfo = mock(FieldStatsInfo.class); FieldStatsInfo level1Pivot2FieldStatsInfo = mock(FieldStatsInfo.class); FieldStatsInfo level2Pivot1FieldStatsInfo = mock(FieldStatsInfo.class); FieldStatsInfo level2Pivot2FieldStatsInfo = mock(FieldStatsInfo.class); List<PivotField> level1Pivots = Arrays.asList(level1Pivot1, level1Pivot2); List<PivotField> level2Pivots = Arrays.asList(level2Pivot1, level2Pivot2); when(level1Pivot1.getValue()).thenReturn("field1value1"); when(level1Pivot1.getCount()).thenReturn(1); when(level1Pivot1FieldStatsInfo.getSum()).thenReturn(1.0); when(level1Pivot1.getFieldStatsInfo()).thenReturn(new HashMap<String, FieldStatsInfo>() { { put("score", level1Pivot1FieldStatsInfo); } }); when(level1Pivot2.getValue()).thenReturn("field1value2"); when(level1Pivot2.getCount()).thenReturn(2); when(level1Pivot2FieldStatsInfo.getSum()).thenReturn(2.0); when(level1Pivot2.getFieldStatsInfo()).thenReturn(new HashMap<String, FieldStatsInfo>() { { put("score", level1Pivot2FieldStatsInfo); } }); when(level2Pivot1.getValue()).thenReturn("field2value1"); when(level2Pivot1.getCount()).thenReturn(3); when(level2Pivot1FieldStatsInfo.getSum()).thenReturn(3.0); when(level2Pivot1.getFieldStatsInfo()).thenReturn(new HashMap<String, FieldStatsInfo>() { { put("score", level2Pivot1FieldStatsInfo); } }); when(level2Pivot2.getValue()).thenReturn("field2value2"); when(level2Pivot2.getCount()).thenReturn(4); when(level2Pivot2FieldStatsInfo.getSum()).thenReturn(4.0); when(level2Pivot2.getFieldStatsInfo()).thenReturn(new HashMap<String, FieldStatsInfo>() { { put("score", level2Pivot2FieldStatsInfo); } }); when(level1Pivot1.getPivot()).thenReturn(level2Pivots); List<GroupResult> level1GroupResults = solrSearchDao.getGroupResults(groupRequest, 0, level1Pivots); assertEquals("field1value1", level1GroupResults.get(0).getKey()); assertEquals(1, level1GroupResults.get(0).getTotal()); assertEquals(1.0, level1GroupResults.get(0).getScore(), 0.00001); assertEquals("field2", level1GroupResults.get(0).getGroupedBy()); assertEquals("field1value2", level1GroupResults.get(1).getKey()); assertEquals(2, level1GroupResults.get(1).getTotal()); assertEquals(2.0, level1GroupResults.get(1).getScore(), 0.00001); assertEquals("field2", level1GroupResults.get(1).getGroupedBy()); assertEquals(0, level1GroupResults.get(1).getGroupResults().size()); List<GroupResult> level2GroupResults = level1GroupResults.get(0).getGroupResults(); assertEquals("field2value2", level2GroupResults.get(0).getKey()); assertEquals(4, level2GroupResults.get(0).getTotal()); assertEquals(4.0, level2GroupResults.get(0).getScore(), 0.00001); assertNull(level2GroupResults.get(0).getGroupedBy()); assertNull(level2GroupResults.get(0).getGroupResults()); assertEquals("field2value1", level2GroupResults.get(1).getKey()); assertEquals(3, level2GroupResults.get(1).getTotal()); assertEquals(3.0, level2GroupResults.get(1).getScore(), 0.00001); assertNull(level2GroupResults.get(1).getGroupedBy()); assertNull(level2GroupResults.get(1).getGroupResults()); }