На самом деле есть два важных момента. Во-первых, поле должно быть проиндексировано. Во-вторых, передайте объект Sort
в перегруженный метод search
.
В прошлый раз, когда я смотрел, документы не очень хорошо указывали на часть индексации и, конечно, не объясняли, почему это так. Потребовалось немного покопаться, чтобы выяснить, почему.
Когда поле сортируется, поисковик создает массив с одним элементом для каждого документа в индексе. Он использует информацию из индекса index для заполнения этого массива, чтобы он мог выполнять сортировку очень быстро. Если у вас много документов, он может использовать много памяти, поэтому не делайте поле сортируемым, если в этом нет необходимости.
Еще одно предупреждение: сортируемое поле должно содержать не более одного значения, сохраненного в каждом поле. Если существует несколько значений, Lucene не знает, какой из них использовать в качестве ключа сортировки.