SOLR-2134: trie fields should get sortMissingLast/First flags from field

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1076514 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Yonik Seeley 2011-03-03 04:44:00 +00:00
parent 4a67d10999
commit b03e13577c
3 changed files with 14 additions and 4 deletions

View File

@ -150,7 +150,6 @@ public final class SchemaField extends FieldProperties {
"can not sort on multivalued field: "
+ getName());
}
}
/**

View File

@ -79,7 +79,18 @@ public class TrieDateField extends DateField {
@Override
public SortField getSortField(SchemaField field, boolean top) {
field.checkSortability();
return new SortField(new LongValuesCreator( field.getName(), FieldCache.NUMERIC_UTILS_LONG_PARSER, CachedArrayCreator.CACHE_VALUES_AND_BITS ), top);
int flags = CachedArrayCreator.CACHE_VALUES_AND_BITS;
boolean sortMissingLast = field.sortMissingLast();
boolean sortMissingFirst = field.sortMissingFirst();
Object missingValue = null;
if( sortMissingLast ) {
missingValue = top ? Long.MIN_VALUE : Long.MAX_VALUE;
} else if( sortMissingFirst ) {
missingValue = top ? Long.MAX_VALUE : Long.MIN_VALUE;
}
return new SortField(new LongValuesCreator(field.getName(), FieldCache.NUMERIC_UTILS_LONG_PARSER, flags), top).setMissingValue(missingValue);
}
@Override

View File

@ -127,8 +127,8 @@ public class TrieField extends FieldType {
int flags = CachedArrayCreator.CACHE_VALUES_AND_BITS;
Object missingValue = null;
boolean sortMissingLast = on( SORT_MISSING_LAST, properties );
boolean sortMissingFirst = on( SORT_MISSING_FIRST, properties );
boolean sortMissingLast = field.sortMissingLast();
boolean sortMissingFirst = field.sortMissingFirst();
switch (type) {
case INTEGER: