Не работает сортировка по StoredField в Lucene 8

При выполнении запроса с сортировкой в Lucene 8.4.1 получаю ошибку:

java.lang.IllegalStateException: unexpected docvalues type NONE for field 'rating' (expected=NUMERIC).

Почему нельзя выполнить сортировку по StoredField?

В индекс добавляю документ так:

Document document = new Document();
document.add(new StoredField("id", id));
document.add(new StoredField("rating", rating));
indexWriter.addDocument(document);

Выполняю поиск так:

IndexSearcher searcher = new IndexSearcher(DirectoryReader.open(directory));
Sort sort = new Sort(new SortField("rating", SortField.Type.FLOAT, true));
TopDocs topDocs = searcher.search(queryBuilder.build(), 10, sort);

Ответы (1 шт):

Автор решения: dmtr

По идее нужно использовать SortedNumericSortField в конструкторе Sort, чтобы правильно вызвать searcher.search(...)

Sort sort = new Sort(new SortedNumericSortField("rating", SortField.Type.FLOAT, true));
→ Ссылка