Skip to content

Commit

Permalink
Failure to reduce geo distance sorting (class case exception), closes e…
Browse files Browse the repository at this point in the history
  • Loading branch information
kimchy committed Aug 11, 2011
1 parent a47bf68 commit 67d2d3d
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 10 deletions.
Expand Up @@ -21,8 +21,9 @@

import org.apache.lucene.index.IndexReader;
import org.apache.lucene.search.FieldComparator;
import org.apache.lucene.search.FieldComparatorSource;
import org.apache.lucene.search.Scorer;
import org.apache.lucene.search.SortField;
import org.elasticsearch.index.field.data.FieldDataType;
import org.elasticsearch.script.SearchScript;

import java.io.IOException;
Expand All @@ -33,11 +34,11 @@
// LUCENE MONITOR: Monitor against FieldComparator.Double
public class DoubleFieldsFunctionDataComparator extends FieldComparator {

public static FieldComparatorSource comparatorSource(SearchScript script) {
public static FieldDataType.ExtendedFieldComparatorSource comparatorSource(SearchScript script) {
return new InnerSource(script);
}

private static class InnerSource extends FieldComparatorSource {
private static class InnerSource extends FieldDataType.ExtendedFieldComparatorSource {

private final SearchScript script;

Expand All @@ -48,6 +49,10 @@ private InnerSource(SearchScript script) {
@Override public FieldComparator newComparator(String fieldname, int numHits, int sortPos, boolean reversed) throws IOException {
return new DoubleFieldsFunctionDataComparator(numHits, script);
}

@Override public int reducedType() {
return SortField.DOUBLE;
}
}

private final SearchScript script;
Expand Down
Expand Up @@ -21,8 +21,9 @@

import org.apache.lucene.index.IndexReader;
import org.apache.lucene.search.FieldComparator;
import org.apache.lucene.search.FieldComparatorSource;
import org.apache.lucene.search.Scorer;
import org.apache.lucene.search.SortField;
import org.elasticsearch.index.field.data.FieldDataType;
import org.elasticsearch.script.SearchScript;

import java.io.IOException;
Expand All @@ -32,11 +33,11 @@
*/
public class StringFieldsFunctionDataComparator extends FieldComparator {

public static FieldComparatorSource comparatorSource(SearchScript script) {
public static FieldDataType.ExtendedFieldComparatorSource comparatorSource(SearchScript script) {
return new InnerSource(script);
}

private static class InnerSource extends FieldComparatorSource {
private static class InnerSource extends FieldDataType.ExtendedFieldComparatorSource {

private final SearchScript script;

Expand All @@ -47,6 +48,10 @@ private InnerSource(SearchScript script) {
@Override public FieldComparator newComparator(String fieldname, int numHits, int sortPos, boolean reversed) throws IOException {
return new StringFieldsFunctionDataComparator(numHits, script);
}

@Override public int reducedType() {
return SortField.STRING;
}
}

private final SearchScript script;
Expand Down
Expand Up @@ -21,10 +21,11 @@

import org.apache.lucene.index.IndexReader;
import org.apache.lucene.search.FieldComparator;
import org.apache.lucene.search.FieldComparatorSource;
import org.apache.lucene.search.SortField;
import org.elasticsearch.ElasticSearchIllegalArgumentException;
import org.elasticsearch.common.unit.DistanceUnit;
import org.elasticsearch.index.cache.field.data.FieldDataCache;
import org.elasticsearch.index.field.data.FieldDataType;
import org.elasticsearch.index.mapper.FieldMapper;
import org.elasticsearch.index.mapper.MapperService;
import org.elasticsearch.index.mapper.geo.GeoPointFieldData;
Expand All @@ -38,12 +39,12 @@
// LUCENE MONITOR: Monitor against FieldComparator.Double
public class GeoDistanceDataComparator extends FieldComparator {

public static FieldComparatorSource comparatorSource(String fieldName, double lat, double lon, DistanceUnit unit, GeoDistance geoDistance,
FieldDataCache fieldDataCache, MapperService mapperService) {
public static FieldDataType.ExtendedFieldComparatorSource comparatorSource(String fieldName, double lat, double lon, DistanceUnit unit, GeoDistance geoDistance,
FieldDataCache fieldDataCache, MapperService mapperService) {
return new InnerSource(fieldName, lat, lon, unit, geoDistance, fieldDataCache, mapperService);
}

private static class InnerSource extends FieldComparatorSource {
static class InnerSource extends FieldDataType.ExtendedFieldComparatorSource {

protected final String fieldName;

Expand Down Expand Up @@ -73,6 +74,10 @@ private InnerSource(String fieldName, double lat, double lon, DistanceUnit unit,
@Override public FieldComparator newComparator(String fieldname, int numHits, int sortPos, boolean reversed) throws IOException {
return new GeoDistanceDataComparator(numHits, fieldname, lat, lon, unit, geoDistance, fieldDataCache, mapperService);
}

@Override public int reducedType() {
return SortField.DOUBLE;
}
}

protected final String fieldName;
Expand Down

0 comments on commit 67d2d3d

Please sign in to comment.