in lib/protocol/encoder.js [1384:1453]
_makeSorter(aSorter) {
const properties = {};
if (aSorter.fieldSort) {
var fieldSortProperties = {
fieldName: aSorter.fieldSort.fieldName,
order: aSorter.fieldSort.order,
mode: aSorter.fieldSort.mode
};
if (aSorter.fieldSort.missingValue) {
fieldSortProperties.missingValue = TableStore.PlainBufferBuilder.serializeSearchValue(aSorter.fieldSort.missingValue, "missingValue");
} else if (aSorter.fieldSort.missing) {
fieldSortProperties.missingValue = TableStore.PlainBufferBuilder.serializeSearchValue(aSorter.fieldSort.missing, "missing");
}
if (aSorter.fieldSort.nestedFilter) {
var nestedFilterProperties = {
path: aSorter.fieldSort.nestedFilter.path,
filter: TableStore.encoder._makeQuery(aSorter.fieldSort.nestedFilter.filter)
};
fieldSortProperties.nestedFilter = tsSearchProtos.NestedFilter.create(nestedFilterProperties);
}
if (aSorter.fieldSort.missingField) {
fieldSortProperties.missingField = aSorter.fieldSort.missingField;
}
properties.fieldSort = tsSearchProtos.FieldSort.create(fieldSortProperties);
} else if (aSorter.geoDistanceSort) {
var geoDistanceSortProperties = {
fieldName: aSorter.geoDistanceSort.fieldName,
points: aSorter.geoDistanceSort.points,
order: aSorter.geoDistanceSort.order,
mode: aSorter.geoDistanceSort.mode,
distanceType: aSorter.geoDistanceSort.distanceType
};
if (aSorter.geoDistanceSort.nestedFilter) {
var nestedFilterProperties = {
path: aSorter.geoDistanceSort.nestedFilter.path,
filter: TableStore.encoder._makeQuery(aSorter.geoDistanceSort.nestedFilter.filter)
};
geoDistanceSortProperties.nestedFilter = tsSearchProtos.NestedFilter.create(nestedFilterProperties);
}
var geoDistanceSort = tsSearchProtos.GeoDistanceSort.create(geoDistanceSortProperties);
properties.geoDistanceSort = geoDistanceSort;
} else if (aSorter.scoreSort) {
var scoreSortProperties = {
order: aSorter.scoreSort.order
};
var scoreSort = tsSearchProtos.ScoreSort.create(scoreSortProperties);
properties.scoreSort = scoreSort;
} else if (aSorter.primaryKeySort) {
var primaryKeySortProperties = {
order: aSorter.primaryKeySort.order
};
var primaryKeySort = tsSearchProtos.PrimaryKeySort.create(primaryKeySortProperties)
properties.pkSort = primaryKeySort;
} else if (aSorter.docSort) {
var docSortProperties = {
order: aSorter.docSort.order
}
var docSort = tsSearchProtos.DocSort.create(docSortProperties);
properties.docSort = docSort;
}
return tsSearchProtos.Sorter.create(properties);
},