Ok so I think based on this ticket
https://issues.apache.org/jira/browse/SOLR-15358 the CurrencyFieldType's
doc value implementation isn't working properly. I was able to get it
working by setting the dynamic sub fields to be uninvertible="true". Not as
efficient as the doc value approach but filtering works now.

On Mon, May 11, 2026 at 11:09 AM Geren White <[email protected]> wrote:

> Some additional information:
> The luke handle indicates the field should have doc values:
>
> sort_currency_type_price____l_ns": {
> "type": "long",
> "schema": "I--D------OF------",
> "dynamicBase": "*_l_ns"
> }
>
> However even if I do a separate exists function query outside of the
> currency field code I still get the missing doc values error.
>
> On Mon, May 11, 2026 at 10:48 AM Geren White <[email protected]> wrote:
>
>> Hello,
>>
>> Is anyone using the CurrencyFieldTypes in solr 9? We are upgrading from 8
>> and switching from the deprecated field. I have the field defined like this:
>> <fieldType name="currency_type" class="solr.CurrencyFieldType"
>>               defaultCurrency="USD"
>>               amountLongSuffix="_l_ns"
>>               codeStrSuffix="_s_ns"
>>               refreshInterval="720"
>>               providerClass="com.dibs.solr.CustomExchangeRatesProvider"/>
>>
>> And the dynamic fields defined like this:
>> <dynamicField name="*_l_ns" type="long" indexed="true" stored="false"
>> multiValued="false" docValues="true"/>
>>   <dynamicField name="*_s_ns" type="string" indexed="true" stored="false"
>> multiValued="false" docValues="true"/>
>>
>> With this setup I get the following error:
>> java.lang.IllegalStateException: unexpected docvalues type NONE for field
>> 'sort_currency_type_price____l_ns' (expected=NUMERIC). Re-index with
>> correct docvalues type.\n\tat
>> org.apache.lucene.index.DocValues.checkField(DocValues.java:218)\n\tat
>> org.apache.lucene.index.DocValues.getNumeric(DocValues.java:237)\n\tat
>> org.apache.lucene.queries.function.valuesource.LongFieldSource.getNumericDocValues(LongFieldSource.java:122)\n\tat
>> org.apache.lucene.queries.function.valuesource.LongFieldSource.getValues(LongFieldSource.java:65)\n\tat
>> org.apache.lucene.queries.function.valuesource.SimpleBoolFunction.getValues(SimpleBoolFunction.java:48)\n\tat
>> org.apache.lucene.queries.function.valuesource.SimpleBoolFunction.getValues(SimpleBoolFunction.java:34)\n\tat
>> org.apache.solr.search.function.ValueSourceRangeFilter$FunctionRangeWeight.scorer(ValueSourceRangeFilter.java:117)\n\tat
>> org.apache.lucene.search.Weight.scorerSupplier(Weight.java:135)\n\tat
>> org.apache.lucene.search.Weight.bulkScorer(Weight.java:165)\n\tat
>> org.apache.lucene.search.IndexSearcher.searchLeaf(IndexSearcher.java:7
>>
>> I tested with the sampletechproducts collection as well and noticed the
>> same issue there to rule out the custom provider class. This is happening
>> in version 9.9.0 and 9.10.0
>>
>> Thanks,
>> --
>> *Geren White | VP Engineering*
>> *(e)* [email protected]
>>
>
>
> --
> *Geren White | VP Engineering*
> *(e)* [email protected]
>


-- 
*Geren White | VP Engineering*
*(e)* [email protected]

Reply via email to