Если ничего не помогает, учитывая расширение AbstractField
(аналогично тому, как NumericField
расширяет его), TokenStream
(аналогично тому, как NumericTokenStream
расширяет его) и MultitermQuery
(аналогично тому, как NumericRangeQuery
расширяет его ). Все три класса Numeric *, к сожалению, являются окончательными, поэтому они не могут быть расширены сами по себе :( Хорошая новость заключается в том, что логика в этих классах довольно тривиальна, и ее легко модифицировать для BigDecimals.
Хранение данных тривиально, так как даже NumericField
сохраняет их в строке. Из Javadoc:
ПРИМЕЧАНИЕ. Этот класс используется только при индексации. При извлечении значения сохраненного поля из
экземпляр документа после поиска, вы получите обычный экземпляр Fieldable, где
числовые значения возвращаются в виде строк (согласно toString (значение) используемого типа данных).
Если вы пойдете по этому пути, попробуйте отправить исправление разработчикам Lucene или хотя бы заполнить запрос JIRA. Разработчики Lucene, как правило, хорошие и открытые люди, так что это может принести пользу и другим.