Я не могу использовать FieldSortBuilder для сортировки по нескольким полям и выполнения условия исключения.Поэтому мне интересно, можем ли мы использовать это безболезненно?
Ниже приведена модель данных.
{ "name" : "string",
"email" : "string",
"schoolNumber" : "number",
"startTime" : "number",
"endTime" : "number",
}
Примеры:
{ "name" : "Micheal",
"email" : "mi@gmail.com",
"schoolNumber": 1,
"startTime" : 123,
}
{ "name" : "Racheal",
"email" : "ra@gmail.com",
"schoolNumber": 1,
"startTime" : 456,
"endTime" : 789,
}
{ "name" : "Racheal",
"email" : "ra@gmail.com",
"schoolNumber": 2,
"startTime" : 987,
}
Только endTime является необязательным.Я хочу отсортировать все профили в startTime по asc, эти профили имеют только startTime, endTime должен быть неактивным и иметь одинаковый schoolNumber.
public static final String SORT_SCRIPT =
"if (doc['endTime.raw'].value == null) {
//sort by startTime which have same schoolNumber
} else {
//sort by endTime which have same schoolNumber
}";
Другое решение: я хочу использовать FieldSortBuilder, чтобы установить для nestedFiler значениеисключить endTime
sortBuilder.setNestedFilter(new TermQueryBuilder(LICENSE_ASSIGNMENT_ACTIVATION_TIME_PROPERTY, value:???)
Но я не знаю, как установить значение.Я пытался с «ноль» «ложь» «ScoreMode.None».Все не удалось.