org.apache.solr.client.solrj.response.FieldStatsInfo Java Examples

The following examples show how to use org.apache.solr.client.solrj.response.FieldStatsInfo. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: AbstractSolrStrategy.java    From Knowage-Server with GNU Affero General Public License v3.0 6 votes vote down vote up
protected Object getValue(FieldStatsInfo fieldStats, IAggregationFunction aggregationFunction) {
	if (AggregationFunctions.COUNT.equals(aggregationFunction.getName())) {
		return fieldStats.getCount();
	}
	if (AggregationFunctions.COUNT_DISTINCT.equals(aggregationFunction.getName())) {
		return fieldStats.getCountDistinct();
	}
	if (AggregationFunctions.MIN.equals(aggregationFunction.getName())) {
		return fieldStats.getMin();
	}
	if (AggregationFunctions.MAX.equals(aggregationFunction.getName())) {
		return fieldStats.getMax();
	}
	if (AggregationFunctions.SUM.equals(aggregationFunction.getName())) {
		return fieldStats.getSum();
	}
	if (AggregationFunctions.AVG.equals(aggregationFunction.getName())) {
		return fieldStats.getMean();
	}
	throw new IllegalArgumentException("The function " + aggregationFunction.getName() + " is not valid here");
}
 
Example #2
Source File: QuerySolr.java    From nifi with Apache License 2.0 6 votes vote down vote up
private static void addStatsFromSolrResponseToJsonWriter(final QueryResponse response, final JsonWriter writer) throws IOException {
    writer.beginObject();
    writer.name("stats_fields");
    writer.beginObject();
    for (Map.Entry<String,FieldStatsInfo> entry: response.getFieldStatsInfo().entrySet()) {
        FieldStatsInfo fsi = entry.getValue();
        writer.name(entry.getKey());
        writer.beginObject();
        writer.name("min").value(fsi.getMin().toString());
        writer.name("max").value(fsi.getMax().toString());
        writer.name("count").value(fsi.getCount());
        writer.name("missing").value(fsi.getMissing());
        writer.name("sum").value(fsi.getSum().toString());
        writer.name("mean").value(fsi.getMean().toString());
        writer.name("sumOfSquares").value(fsi.getSumOfSquares());
        writer.name("stddev").value(fsi.getStddev());
        writer.endObject();
    }
    writer.endObject();
    writer.endObject();
}
 
Example #3
Source File: DistributedFacetPivotSmallAdvancedTest.java    From lucene-solr with Apache License 2.0 4 votes vote down vote up
private void doTestDeepPivotStatsOnString() throws Exception {
  SolrParams params = params("q", "*:*", "rows", "0",
      "shards", getShardsString(),
      "facet", "true", "stats", "true",
      "facet.pivot", "{!stats=s1}place_t,company_t",
      "stats.field", "{!key=avg_price tag=s1}foo_s");
  QueryResponse rsp = queryServer(new ModifiableSolrParams(params));

  List<PivotField> placePivots = rsp.getFacetPivot().get("place_t,company_t");

  PivotField dublinPivotField = placePivots.get(0);
  assertEquals("dublin", dublinPivotField.getValue());
  assertEquals(4, dublinPivotField.getCount());

  PivotField microsoftPivotField = dublinPivotField.getPivot().get(0);
  assertEquals("microsoft", microsoftPivotField.getValue());
  assertEquals(4, microsoftPivotField.getCount());

  FieldStatsInfo dublinMicrosoftStatsInfo = microsoftPivotField.getFieldStatsInfo().get("avg_price");
  assertEquals("aaa", dublinMicrosoftStatsInfo.getMin());
  assertEquals("bbb", dublinMicrosoftStatsInfo.getMax());
  assertEquals(4, (long) dublinMicrosoftStatsInfo.getCount());
  assertEquals(0, (long) dublinMicrosoftStatsInfo.getMissing());

  PivotField cardiffPivotField = placePivots.get(2);
  assertEquals("cardiff", cardiffPivotField.getValue());
  assertEquals(3, cardiffPivotField.getCount());

  PivotField polecatPivotField = cardiffPivotField.getPivot().get(0);
  assertEquals("polecat", polecatPivotField.getValue());
  assertEquals(3, polecatPivotField.getCount());

  FieldStatsInfo cardiffPolecatStatsInfo = polecatPivotField.getFieldStatsInfo().get("avg_price");
  assertEquals("aaa", cardiffPolecatStatsInfo.getMin());
  assertEquals("bbb", cardiffPolecatStatsInfo.getMax());
  assertEquals(3, (long) cardiffPolecatStatsInfo.getCount());
  assertEquals(0, (long) cardiffPolecatStatsInfo.getMissing());

  PivotField krakowPivotField = placePivots.get(3);
  assertEquals("krakow", krakowPivotField.getValue());
  assertEquals(3, krakowPivotField.getCount());

  PivotField fujitsuPivotField = krakowPivotField.getPivot().get(3);
  assertEquals("fujitsu", fujitsuPivotField.getValue());
  assertEquals(1, fujitsuPivotField.getCount());

  FieldStatsInfo krakowFujitsuStatsInfo = fujitsuPivotField.getFieldStatsInfo().get("avg_price");
  assertEquals("aaa", krakowFujitsuStatsInfo.getMin());
  assertEquals("aaa", krakowFujitsuStatsInfo.getMax());
  assertEquals(1, (long) krakowFujitsuStatsInfo.getCount());
  assertEquals(0, (long) krakowFujitsuStatsInfo.getMissing());
}
 
Example #4
Source File: DistributedFacetPivotLongTailTest.java    From lucene-solr with Apache License 2.0 4 votes vote down vote up
private void doTestDeepPivotStats() throws Exception {
  // Deep checking of some Facet stats - no refinement involved here

  List<PivotField> pivots = 
    query("q", "*:*",
          "shards", getShardsString(),
          "facet", "true",
          "rows" , "0",
          "facet.pivot","{!stats=s1}foo_s,bar_s",
          "stats", "true",
          "stats.field", "{!key=avg_price tag=s1}" + STAT_FIELD).getFacetPivot().get("foo_s,bar_s");
  PivotField aaa0PivotField = pivots.get(0);
  assertEquals("aaa0", aaa0PivotField.getValue());
  assertEquals(300, aaa0PivotField.getCount());

  FieldStatsInfo aaa0StatsInfo = aaa0PivotField.getFieldStatsInfo().get("avg_price");
  assertEquals("avg_price", aaa0StatsInfo.getName());
  assertEquals(-99.0, aaa0StatsInfo.getMin());
  assertEquals(693.0, aaa0StatsInfo.getMax());
  assertEquals(300, (long) aaa0StatsInfo.getCount());
  assertEquals(0, (long) aaa0StatsInfo.getMissing());
  assertEquals(34650.0, aaa0StatsInfo.getSum());
  assertEquals(1.674585E7, aaa0StatsInfo.getSumOfSquares(), 0.1E-7);
  assertEquals(115.5, (double) aaa0StatsInfo.getMean(), 0.1E-7);
  assertEquals(206.4493184076, aaa0StatsInfo.getStddev(), 0.1E-7);

  PivotField tailPivotField = pivots.get(5);
  assertEquals("tail", tailPivotField.getValue());
  assertEquals(135, tailPivotField.getCount());

  FieldStatsInfo tailPivotFieldStatsInfo = tailPivotField.getFieldStatsInfo().get("avg_price");
  assertEquals("avg_price", tailPivotFieldStatsInfo.getName());
  assertEquals(0.0, tailPivotFieldStatsInfo.getMin());
  assertEquals(44.0, tailPivotFieldStatsInfo.getMax());
  assertEquals(90, (long) tailPivotFieldStatsInfo.getCount());
  assertEquals(45, (long) tailPivotFieldStatsInfo.getMissing());
  assertEquals(1980.0, tailPivotFieldStatsInfo.getSum());
  assertEquals(22.0, (double) tailPivotFieldStatsInfo.getMean(), 0.1E-7);
  assertEquals(58740.0, tailPivotFieldStatsInfo.getSumOfSquares(), 0.1E-7);
  assertEquals(13.0599310011, tailPivotFieldStatsInfo.getStddev(), 0.1E-7);

  PivotField tailBPivotField = tailPivotField.getPivot().get(0);
  assertEquals("tailB", tailBPivotField.getValue());
  assertEquals(17, tailBPivotField.getCount());

  FieldStatsInfo tailBPivotFieldStatsInfo = tailBPivotField.getFieldStatsInfo().get("avg_price");
  assertEquals("avg_price", tailBPivotFieldStatsInfo.getName());
  assertEquals(35.0, tailBPivotFieldStatsInfo.getMin());
  assertEquals(40.0, tailBPivotFieldStatsInfo.getMax());
  assertEquals(12, (long) tailBPivotFieldStatsInfo.getCount());
  assertEquals(5, (long) tailBPivotFieldStatsInfo.getMissing());
  assertEquals(450.0, tailBPivotFieldStatsInfo.getSum());
  assertEquals(37.5, (double) tailBPivotFieldStatsInfo.getMean(), 0.1E-7);
  assertEquals(16910.0, tailBPivotFieldStatsInfo.getSumOfSquares(), 0.1E-7);
  assertEquals(1.78376517, tailBPivotFieldStatsInfo.getStddev(), 0.1E-7);
}
 
Example #5
Source File: DistributedFacetPivotSmallTest.java    From lucene-solr with Apache License 2.0 4 votes vote down vote up
/**
 * @param justMean - only the mean stat is requested/computed
 */
private void doTestDeepPivotStats(boolean justMean) throws Exception {
  SolrParams params = params("q", "*:*", "rows", "0", 
                             "facet", "true", "stats", "true", 
                             "facet.pivot", "{!stats=s1}place_t,company_t", 
                             "stats.field", ("{!key=avg_price tag=s1 "+
                                             (justMean ? "mean=true" : "") +"}price_ti"));
  QueryResponse rsp = query(params);

  List<PivotField> placePivots = rsp.getFacetPivot().get("place_t,company_t");

  PivotField dublinPivotField = placePivots.get(0);
  assertEquals("dublin", dublinPivotField.getValue());
  assertEquals(4, dublinPivotField.getCount());

  PivotField microsoftPivotField = dublinPivotField.getPivot().get(0);
  assertEquals("microsoft", microsoftPivotField.getValue());
  assertEquals(4, microsoftPivotField.getCount());

  FieldStatsInfo dublinMicrosoftStatsInfo = microsoftPivotField.getFieldStatsInfo().get("avg_price");
  assertEquals(21.0, (double) dublinMicrosoftStatsInfo.getMean(), 0.1E-7);
  if (justMean) {
    assertNull(dublinMicrosoftStatsInfo.getMin());
    assertNull(dublinMicrosoftStatsInfo.getMax());
    assertNull(dublinMicrosoftStatsInfo.getCount());
    assertNull(dublinMicrosoftStatsInfo.getMissing());
    assertNull(dublinMicrosoftStatsInfo.getSum());
    assertNull(dublinMicrosoftStatsInfo.getSumOfSquares());
    assertNull(dublinMicrosoftStatsInfo.getStddev());
  } else {
    assertEquals(15.0, dublinMicrosoftStatsInfo.getMin());
    assertEquals(29.0, dublinMicrosoftStatsInfo.getMax());
    assertEquals(3, (long) dublinMicrosoftStatsInfo.getCount());
    assertEquals(1, (long) dublinMicrosoftStatsInfo.getMissing());
    assertEquals(63.0, dublinMicrosoftStatsInfo.getSum());
    assertEquals(1427.0, dublinMicrosoftStatsInfo.getSumOfSquares(), 0.1E-7);
    assertEquals(7.211102550927978, dublinMicrosoftStatsInfo.getStddev(), 0.1E-7);
  }

  PivotField cardiffPivotField = placePivots.get(2);
  assertEquals("cardiff", cardiffPivotField.getValue());
  assertEquals(3, cardiffPivotField.getCount());

  PivotField polecatPivotField = cardiffPivotField.getPivot().get(0);
  assertEquals("polecat", polecatPivotField.getValue());
  assertEquals(3, polecatPivotField.getCount());

  FieldStatsInfo cardiffPolecatStatsInfo = polecatPivotField.getFieldStatsInfo().get("avg_price");
  assertEquals(27.0, (double) cardiffPolecatStatsInfo.getMean(), 0.1E-7);
  if (justMean) {
    assertNull(cardiffPolecatStatsInfo.getMin());
    assertNull(cardiffPolecatStatsInfo.getMax());
    assertNull(cardiffPolecatStatsInfo.getCount());
    assertNull(cardiffPolecatStatsInfo.getMissing());
    assertNull(cardiffPolecatStatsInfo.getSum());
    assertNull(cardiffPolecatStatsInfo.getSumOfSquares());
    assertNull(cardiffPolecatStatsInfo.getStddev());
  } else {
    assertEquals(15.0, cardiffPolecatStatsInfo.getMin());
    assertEquals(39.0, cardiffPolecatStatsInfo.getMax());
    assertEquals(2, (long) cardiffPolecatStatsInfo.getCount());
    assertEquals(1, (long) cardiffPolecatStatsInfo.getMissing());
    assertEquals(54.0, cardiffPolecatStatsInfo.getSum());
    assertEquals(1746.0, cardiffPolecatStatsInfo.getSumOfSquares(), 0.1E-7);
    assertEquals(16.97056274847714, cardiffPolecatStatsInfo.getStddev(), 0.1E-7);
  }

  PivotField krakowPivotField = placePivots.get(3);
  assertEquals("krakow", krakowPivotField.getValue());
  assertEquals(3, krakowPivotField.getCount());

  PivotField fujitsuPivotField = krakowPivotField.getPivot().get(3);
  assertEquals("fujitsu", fujitsuPivotField.getValue());
  assertEquals(1, fujitsuPivotField.getCount());

  FieldStatsInfo krakowFujitsuStatsInfo = fujitsuPivotField.getFieldStatsInfo().get("avg_price");
  assertEquals(Double.NaN, (double) krakowFujitsuStatsInfo.getMean(), 0.1E-7);
  if (justMean) {
    assertNull(krakowFujitsuStatsInfo.getMin());
    assertNull(krakowFujitsuStatsInfo.getMax());
    assertNull(krakowFujitsuStatsInfo.getCount());
    assertNull(krakowFujitsuStatsInfo.getMissing());
    assertNull(krakowFujitsuStatsInfo.getSum());
    assertNull(krakowFujitsuStatsInfo.getSumOfSquares());
    assertNull(krakowFujitsuStatsInfo.getStddev());
   } else {
    assertEquals(null, krakowFujitsuStatsInfo.getMin());
    assertEquals(null, krakowFujitsuStatsInfo.getMax());
    assertEquals(0, (long) krakowFujitsuStatsInfo.getCount());
    assertEquals(1, (long) krakowFujitsuStatsInfo.getMissing());
    assertEquals(0.0, krakowFujitsuStatsInfo.getSum());
    assertEquals(0.0, krakowFujitsuStatsInfo.getSumOfSquares(), 0.1E-7);
    assertEquals(Double.NaN, (double) krakowFujitsuStatsInfo.getMean(), 0.1E-7);
    assertEquals(0.0, krakowFujitsuStatsInfo.getStddev(), 0.1E-7);
  }
}
 
Example #6
Source File: DistributedFacetPivotSmallTest.java    From lucene-solr with Apache License 2.0 4 votes vote down vote up
private void testPivotFacetRangeAndQuery() throws Exception {
  SolrParams params = params("q", "*:*",
      "rows", "0",
      "facet", "true",
      "stats", "true",
      "facet.pivot", "{!range=s1 query=s2 stats=s3}place_t,company_t",
      "facet.range", "{!tag=s1 key=price}price_ti",
      "facet.query", "{!tag=s2 key=highPrice}price_ti:[25 TO 100]",
      "facet.query", "{!tag=s2 key=lowPrice}price_ti:[0 TO 20]",
      "stats.field", ("{!tag=s3 key=avg_price}price_ti"),
      "facet.range.start", "0",
      "facet.range.end", "100",
      "facet.range.gap", "20",
      FacetParams.FACET_SORT, FacetParams.FACET_SORT_COUNT,
      FacetParams.FACET_LIMIT, "2");

  UnorderedEqualityArrayList<PivotField> expectedPlacePivots = new UnorderedEqualityArrayList<>();
  UnorderedEqualityArrayList<PivotField> expectedDublinPivots = new UnorderedEqualityArrayList<>();
  expectedDublinPivots.add(new ComparablePivotField("company_t", "polecat",
      4, null, createExpectedQCount(new String[]{"highPrice",
      "lowPrice"}, new int[]{1, 2}), createExpectedRange("price", 0, 100, 20, 2, 1, 0,
      0, 0)));
  expectedDublinPivots.add(new ComparablePivotField("company_t", "microsoft",
      4, null, createExpectedQCount(new String[]{"highPrice",
      "lowPrice"}, new int[]{1, 2}), createExpectedRange("price", 0, 100, 20, 2, 1, 0,
      0, 0)));
  UnorderedEqualityArrayList<PivotField> expectedLondonPivots = new UnorderedEqualityArrayList<>();
  expectedLondonPivots.add(new ComparablePivotField("company_t", "null", 3,
      null, createExpectedQCount(
      new String[]{"highPrice", "lowPrice"}, new int[]{2, 0}), createExpectedRange("price", 0, 100, 20, 0, 2, 0, 0,
      0)));
  expectedLondonPivots.add(new ComparablePivotField("company_t", "polecat",
      3, null, createExpectedQCount(new String[]{"highPrice",
      "lowPrice"}, new int[]{2, 0}), createExpectedRange("price", 0, 100, 20, 0, 2, 0,
      0, 0)));
  expectedPlacePivots.add(new ComparablePivotField("place_t", "dublin", 4,
      expectedDublinPivots, createExpectedQCount(new String[]{
      "highPrice", "lowPrice"}, new int[]{1, 2}), createExpectedRange("price", 0, 100,
      20, 2, 1, 0, 0, 0)));
  expectedPlacePivots.add(new ComparablePivotField("place_t", "london", 4,
      expectedLondonPivots, createExpectedQCount(new String[]{
      "highPrice", "lowPrice"}, new int[]{3, 0}), createExpectedRange("price", 0, 100,
      20, 0, 3, 0, 0, 0)));

  QueryResponse rsp = query(params);
  List<PivotField> placePivots = rsp.getFacetPivot().get("place_t,company_t");
  assertEquals(expectedPlacePivots, placePivots);

  PivotField dublinPivotField = placePivots.get(0);
  assertEquals("dublin", dublinPivotField.getValue());
  assertEquals(4, dublinPivotField.getCount());

  PivotField microsoftPivotField = dublinPivotField.getPivot().get(0);
  assertEquals("microsoft", microsoftPivotField.getValue());
  assertEquals(4, microsoftPivotField.getCount());

  FieldStatsInfo dublinMicrosoftStatsInfo = microsoftPivotField.getFieldStatsInfo().get("avg_price");
  assertEquals(21.0, (double) dublinMicrosoftStatsInfo.getMean(), 0.1E-7);
  assertEquals(15.0, dublinMicrosoftStatsInfo.getMin());
  assertEquals(29.0, dublinMicrosoftStatsInfo.getMax());
  assertEquals(3, (long) dublinMicrosoftStatsInfo.getCount());
  assertEquals(1, (long) dublinMicrosoftStatsInfo.getMissing());
  assertEquals(63.0, dublinMicrosoftStatsInfo.getSum());
  assertEquals(1427.0, dublinMicrosoftStatsInfo.getSumOfSquares(), 0.1E-7);
  assertEquals(7.211102550927978, dublinMicrosoftStatsInfo.getStddev(), 0.1E-7);
}
 
Example #7
Source File: DistributedFacetPivotLargeTest.java    From lucene-solr with Apache License 2.0 4 votes vote down vote up
private void doTestDeepPivotStats() throws Exception {

    QueryResponse rsp = query("q", "*:*",
                              "rows", "0",
                              "facet", "true",
                              "facet.pivot","{!stats=s1}place_s,company_t",
                              "stats", "true",
                              "stats.field", "{!key=avg_price tag=s1}pay_i");

    List<PivotField> pivots = rsp.getFacetPivot().get("place_s,company_t");

    PivotField cardiffPivotField = pivots.get(0);
    assertEquals("cardiff", cardiffPivotField.getValue());
    assertEquals(257, cardiffPivotField.getCount());

    FieldStatsInfo cardiffStatsInfo = cardiffPivotField.getFieldStatsInfo().get("avg_price");
    assertEquals("avg_price", cardiffStatsInfo.getName());
    assertEquals(0.0, cardiffStatsInfo.getMin());
    assertEquals(8742.0, cardiffStatsInfo.getMax());
    assertEquals(257, (long) cardiffStatsInfo.getCount());
    assertEquals(0, (long) cardiffStatsInfo.getMissing());
    assertEquals(347554.0, cardiffStatsInfo.getSum());
    assertEquals(8.20968772E8, cardiffStatsInfo.getSumOfSquares(), 0.1E-7);
    assertEquals(1352.35019455253, (double) cardiffStatsInfo.getMean(), 0.1E-7);
    assertEquals(1170.86048165857, cardiffStatsInfo.getStddev(), 0.1E-7);

    PivotField bbcCardifftPivotField = cardiffPivotField.getPivot().get(0);
    assertEquals("bbc", bbcCardifftPivotField.getValue());
    assertEquals(101, bbcCardifftPivotField.getCount());

    FieldStatsInfo bbcCardifftPivotFieldStatsInfo = bbcCardifftPivotField.getFieldStatsInfo().get("avg_price");
    assertEquals(2400.0, bbcCardifftPivotFieldStatsInfo.getMin());
    assertEquals(8742.0, bbcCardifftPivotFieldStatsInfo.getMax());
    assertEquals(101, (long) bbcCardifftPivotFieldStatsInfo.getCount());
    assertEquals(0, (long) bbcCardifftPivotFieldStatsInfo.getMissing());
    assertEquals(248742.0, bbcCardifftPivotFieldStatsInfo.getSum());
    assertEquals(6.52422564E8, bbcCardifftPivotFieldStatsInfo.getSumOfSquares(), 0.1E-7);
    assertEquals(2462.792079208, (double) bbcCardifftPivotFieldStatsInfo.getMean(), 0.1E-7);
    assertEquals(631.0525860312, bbcCardifftPivotFieldStatsInfo.getStddev(), 0.1E-7);


    PivotField placeholder0PivotField = pivots.get(2);
    assertEquals("0placeholder", placeholder0PivotField.getValue());
    assertEquals(6, placeholder0PivotField.getCount());

    FieldStatsInfo placeholder0PivotFieldStatsInfo = placeholder0PivotField.getFieldStatsInfo().get("avg_price");
    assertEquals("avg_price", placeholder0PivotFieldStatsInfo.getName());
    assertEquals(2000.0, placeholder0PivotFieldStatsInfo.getMin());
    assertEquals(6400.0, placeholder0PivotFieldStatsInfo.getMax());
    assertEquals(6, (long) placeholder0PivotFieldStatsInfo.getCount());
    assertEquals(0, (long) placeholder0PivotFieldStatsInfo.getMissing());
    assertEquals(22700.0, placeholder0PivotFieldStatsInfo.getSum());
    assertEquals(1.0105E8, placeholder0PivotFieldStatsInfo.getSumOfSquares(), 0.1E-7);
    assertEquals(3783.333333333, (double) placeholder0PivotFieldStatsInfo.getMean(), 0.1E-7);
    assertEquals(1741.742422595, placeholder0PivotFieldStatsInfo.getStddev(), 0.1E-7);

    PivotField microsoftPlaceholder0PivotField = placeholder0PivotField.getPivot().get(1);
    assertEquals("microsoft", microsoftPlaceholder0PivotField.getValue());
    assertEquals(6, microsoftPlaceholder0PivotField.getCount());

    FieldStatsInfo microsoftPlaceholder0PivotFieldStatsInfo = microsoftPlaceholder0PivotField.getFieldStatsInfo().get("avg_price");
    assertEquals("avg_price", microsoftPlaceholder0PivotFieldStatsInfo.getName());
    assertEquals(2000.0, microsoftPlaceholder0PivotFieldStatsInfo.getMin());
    assertEquals(6400.0, microsoftPlaceholder0PivotFieldStatsInfo.getMax());
    assertEquals(6, (long) microsoftPlaceholder0PivotFieldStatsInfo.getCount());
    assertEquals(0, (long) microsoftPlaceholder0PivotFieldStatsInfo.getMissing());
    assertEquals(22700.0, microsoftPlaceholder0PivotFieldStatsInfo.getSum());
    assertEquals(1.0105E8, microsoftPlaceholder0PivotFieldStatsInfo.getSumOfSquares(), 0.1E-7);
    assertEquals(3783.333333333, (double) microsoftPlaceholder0PivotFieldStatsInfo.getMean(), 0.1E-7);
    assertEquals(1741.742422595, microsoftPlaceholder0PivotFieldStatsInfo.getStddev(), 0.1E-7);
  }
 
Example #8
Source File: SolrSearchDaoTest.java    From metron with Apache License 2.0 4 votes vote down vote up
@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);
  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());
}
 
Example #9
Source File: DistributedFacetPivotSmallTest.java    From lucene-solr with Apache License 2.0 3 votes vote down vote up
/**
 * given a PivotField, a FieldStatsInfo, and a value; asserts that:
 * <ul>
 *  <li>stat count == 1</li>
 *  <li>stat missing == pivot count - 1</li>
 *  <li>stat min == stat max == value</li>
 * </ul>
 */
private void assertThereCanBeOnlyOne(PivotField pf, FieldStatsInfo stats, Object val) {
  String msg = pf.getField() + ":" + pf.getValue();
  assertEquals(msg + " stats count", 1L, (long) stats.getCount());
  assertEquals(msg + " stats missing", pf.getCount()-1L, (long) stats.getMissing());
  assertEquals(msg + " stats min", val, stats.getMin());
  assertEquals(msg + " stats max", val, stats.getMax());
}