mirror of https://github.com/apache/lucene.git
SOLR-680 -- StatsComponent -- removing broken median calculation
git-svn-id: https://svn.apache.org/repos/asf/lucene/solr/trunk@727782 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
328cacec62
commit
d52572f548
|
@ -24,5 +24,4 @@ public interface StatsParams {
|
|||
public static final String STATS = "stats";
|
||||
public static final String STATS_FIELD = STATS + ".field";
|
||||
public static final String STATS_FACET = STATS + ".facet";
|
||||
public static final String STATS_TWOPASS = STATS + ".twopass";
|
||||
}
|
||||
|
|
|
@ -181,7 +181,6 @@ class StatsValues {
|
|||
double sumOfSquares;
|
||||
long count;
|
||||
long missing;
|
||||
Double median = null;
|
||||
|
||||
// facetField facetValue
|
||||
Map<String, Map<String,StatsValues>> facets;
|
||||
|
@ -251,7 +250,6 @@ class StatsValues {
|
|||
max = Double.MIN_VALUE;
|
||||
sum = count = missing = 0;
|
||||
sumOfSquares = 0;
|
||||
median = null;
|
||||
facets = null;
|
||||
}
|
||||
|
||||
|
@ -264,9 +262,6 @@ class StatsValues {
|
|||
res.add("missing", missing);
|
||||
res.add("sumOfSquares", sumOfSquares );
|
||||
res.add("mean", getAverage());
|
||||
if( median != null ) {
|
||||
res.add( "median", median );
|
||||
}
|
||||
res.add( "stddev", getStandardDeviation() );
|
||||
|
||||
// add the facet stats
|
||||
|
@ -435,34 +430,6 @@ class SimpleStats {
|
|||
}
|
||||
}
|
||||
|
||||
// Find things that require a 2nd pass
|
||||
if( params.getFieldBool(fieldName, StatsParams.STATS_TWOPASS, false) ) {
|
||||
if( allstats.count > 1 ) { // must be 2 or more...
|
||||
iter = docs.iterator();
|
||||
boolean isEven = ( allstats.count % 2) == 0;
|
||||
int medianIndex = (int) Math.ceil( allstats.count/2.0 );
|
||||
for ( i=0; iter.hasNext(); ) {
|
||||
String raw = all.getTermText(iter.nextDoc());
|
||||
if( raw != null ) {
|
||||
if( ++i == medianIndex ) {
|
||||
double val0 = Double.parseDouble( all.ft.indexedToReadable(raw) );
|
||||
if( isEven ) {
|
||||
do {
|
||||
raw = all.getTermText(iter.nextDoc());
|
||||
} while( raw == null );
|
||||
double val1 = Double.parseDouble( all.ft.indexedToReadable(raw) );
|
||||
allstats.median = (val0+val1)/2.0;
|
||||
}
|
||||
else {
|
||||
allstats.median = val0;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} // get median
|
||||
}
|
||||
|
||||
if( finfo.length > 0 ) {
|
||||
allstats.facets = new HashMap<String, Map<String,StatsValues>>();
|
||||
for( FieldFacetStats f : finfo ) {
|
||||
|
|
|
@ -352,11 +352,10 @@ public class SolrQuery extends ModifiableSolrParams
|
|||
this.set( StatsParams.STATS, v );
|
||||
}
|
||||
|
||||
public void setGetFieldStatistics( String field, boolean twopass )
|
||||
public void setGetFieldStatistics( String field )
|
||||
{
|
||||
this.set( StatsParams.STATS, true );
|
||||
this.add( StatsParams.STATS_FIELD, field );
|
||||
this.set( "f."+field+"."+StatsParams.STATS_TWOPASS, twopass+"" );
|
||||
}
|
||||
|
||||
public void addStatsFieldFacets( String field, String ... facets )
|
||||
|
|
|
@ -41,7 +41,6 @@ public class FieldStatsInfo implements Serializable {
|
|||
Double mean = null;
|
||||
Double sumOfSquares = null;
|
||||
Double stddev = null;
|
||||
Double median = null;
|
||||
|
||||
Map<String,List<FieldStatsInfo>> facets;
|
||||
|
||||
|
@ -74,9 +73,6 @@ public class FieldStatsInfo implements Serializable {
|
|||
else if( "stddev".equals( entry.getKey() ) ) {
|
||||
stddev = (Double)entry.getValue();
|
||||
}
|
||||
else if( "median".equals( entry.getKey() ) ) {
|
||||
median = (Double)entry.getValue();
|
||||
}
|
||||
else if( "facets".equals( entry.getKey() ) ) {
|
||||
NamedList<Object> fields = (NamedList<Object>)entry.getValue();
|
||||
facets = new HashMap<String, List<FieldStatsInfo>>();
|
||||
|
@ -119,9 +115,6 @@ public class FieldStatsInfo implements Serializable {
|
|||
if( mean != null ) {
|
||||
sb.append( " mean:").append( mean );
|
||||
}
|
||||
if( median != null ) {
|
||||
sb.append( " median:").append(median);
|
||||
}
|
||||
if( stddev != null ) {
|
||||
sb.append( " stddev:").append(stddev);
|
||||
}
|
||||
|
@ -161,10 +154,6 @@ public class FieldStatsInfo implements Serializable {
|
|||
return stddev;
|
||||
}
|
||||
|
||||
public Double getMedian() {
|
||||
return median;
|
||||
}
|
||||
|
||||
public Map<String, List<FieldStatsInfo>> getFacets() {
|
||||
return facets;
|
||||
}
|
||||
|
|
|
@ -343,7 +343,7 @@ abstract public class SolrExampleTests extends SolrExampleTestBase
|
|||
|
||||
SolrQuery query = new SolrQuery( "*:*" );
|
||||
query.setRows( 0 );
|
||||
query.setGetFieldStatistics( "popularity", true );
|
||||
query.setGetFieldStatistics( "popularity" );
|
||||
|
||||
QueryResponse rsp = server.query( query );
|
||||
FieldStatsInfo stats = rsp.getFieldStatsInfo().get( "popularity" );
|
||||
|
@ -353,7 +353,6 @@ abstract public class SolrExampleTests extends SolrExampleTestBase
|
|||
assertEquals( 94.0, stats.getMax() );
|
||||
assertEquals( new Long(nums.length), stats.getCount() );
|
||||
assertEquals( new Long(0), stats.getMissing() );
|
||||
assertEquals( (nums[4]+nums[5])/2.0, stats.getMedian() );
|
||||
assertEquals( "26.4", stats.getStddev().toString().substring(0,4) );
|
||||
|
||||
// now lets try again with a new set... (odd median)
|
||||
|
@ -380,7 +379,6 @@ abstract public class SolrExampleTests extends SolrExampleTestBase
|
|||
assertEquals( 20.0, stats.getMax() );
|
||||
assertEquals( new Long(nums.length), stats.getCount() );
|
||||
assertEquals( new Long(0), stats.getMissing() );
|
||||
assertEquals( 10.0, stats.getMedian() );
|
||||
|
||||
// Now try again with faceting
|
||||
//---------------------------------
|
||||
|
|
Loading…
Reference in New Issue