You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2017/09/11 18:29:00 UTC
[jira] [Commented] (SOLR-11132) Refactor common getSortField logic
in various FieldTypes
[ https://issues.apache.org/jira/browse/SOLR-11132?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16161734#comment-16161734 ]
ASF subversion and git services commented on SOLR-11132:
--------------------------------------------------------
Commit 31eab319f4b2632f1be488be3c1008b3567c6142 in lucene-solr's branch refs/heads/master from Chris Hostetter
[ https://git-wip-us.apache.org/repos/asf?p=lucene-solr.git;h=31eab31 ]
SOLR-11332, SOLR-11132: Fix sorting on 'enum' fieldTypes that use sortMissingFirst or sortMissingLast and Refactor common getSortField logic in various FieldTypes
> Refactor common getSortField logic in various FieldTypes
> --------------------------------------------------------
>
> Key: SOLR-11132
> URL: https://issues.apache.org/jira/browse/SOLR-11132
> Project: Solr
> Issue Type: Improvement
> Security Level: Public(Default Security Level. Issues are Public)
> Reporter: Hoss Man
> Assignee: Hoss Man
> Attachments: SOLR-11132.patch, SOLR-11132.patch
>
>
> This pattern exists a lot w/ some minor fluxuations in copy/paste variation...
> {code}
> @Override
> public SortField getSortField(SchemaField field, boolean top) {
> field.checkSortability();
> Object missingValue = null;
> boolean sortMissingLast = field.sortMissingLast();
> boolean sortMissingFirst = field.sortMissingFirst();
> if (sortMissingLast) {
> missingValue = top ? SOMECLASS.MIN_VALUE : SOMECLASS.MAX_VALUE;
> } else if (sortMissingFirst) {
> missingValue = top ? SOMECLASS.MAX_VALUE : SOMECLASS.MIN_VALUE;
> }
> SortField sf = new SortField(field.getName(), SortField.Type.SOMETYPE, top);
> sf.setMissingValue(missingValue);
> return sf;
> }
> {code}
> We should refactor it into a helper method along the lines of...
> {code}
> @Override
> public static SortField getSortField(SchemaField field, boolean top, SortField.Type sortType,
> Object missingLow, Object missingHigh) {
> field.checkSortability();
> Object missingValue = null;
> boolean sortMissingLast = field.sortMissingLast();
> boolean sortMissingFirst = field.sortMissingFirst();
> if (sortMissingLast) {
> missingValue = top ? missingLow : missingHigh;
> } else if (sortMissingFirst) {
> missingValue = top ? missingHigh : missingLow;
> }
> SortField sf = new SortField(field.getName(), sortType, top);
> sf.setMissingValue(missingValue);
> return sf;
> }
> {code}
> So it can be re-used via...
> {code}
> @Override
> public SortField getSortField(SchemaField field, boolean top) {
> return getSortField(field, top, SortField.Type.SOMETIME,
> SOMECLASS.MIN_VALUE, SOMECLASS.MAX_VALUE);
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org