Sorting on BigDecimal Field

Unfortunately, for custom bridges, the SortableField annotation is only used to validate queries, it’s ignored when indexing.

You will need to add the docvalues yourself.
Instead of this:

public void set(String name, Object value, Document document, LuceneOptions luceneOptions) {
	if (value != null) {
		BigDecimal decimalValue = (BigDecimal) value;
		Long indexedValue = decimalValue.multiply(storeFactor).longValue();
		luceneOptions.addNumericFieldToDocument(name, indexedValue, document);
	}
}

… do this:

public void set(String name, Object value, Document document, LuceneOptions luceneOptions) {
	if (value != null) {
		BigDecimal decimalValue = (BigDecimal) value;
		Long indexedValue = decimalValue.multiply(storeFactor).longValue();
		luceneOptions.addNumericFieldToDocument(name, indexedValue, document);
		luceneOptions.addNumericDocValuesFieldToDocument(name, indexedValue, document);
	}
}