如何查询Solr CurrencyField并将所有结果转换为通用货币?
Solr查询时统一转换货币到指定类型
完全可以在查询索引时把所有货币字段的结果统一转换为你指定的通用货币,具体操作很直接:
用Solr内置的
convert函数实现转换:在查询请求的fl(返回字段列表)参数里,通过convert函数指定目标货币,就能直接返回转换后的值。
比如你要执行Revenue_c:*查询并统一转成USD,请求可以这么写:q=Revenue_c:*&fl=*,convert(Revenue_c, 'USD') as Revenue_c&wt=json这样返回的
Revenue_c字段就会是转换为USD后的数值加货币代码,和你期望的示例完全一致。注意汇率配置:得确保你的Solr已经配置了正确的汇率数据源(比如通过
CurrencyFieldType的currencyConfig参数指定汇率文件),如果需要实时汇率,得定期更新汇率配置或者用支持动态汇率的插件。字段灵活处理:要是想保留原字段值,可以给转换后的结果指定新字段名,比如
convert(Revenue_c, 'USD') as Revenue_usd;要是直接替换原字段返回值,就用示例里的as Revenue_c就行。
完整的请求示例(假设Solr核心名为mycore):
http://localhost:8983/solr/mycore/select?q=Revenue_c:*&fl=*,convert(Revenue_c, 'USD') as Revenue_c&wt=json
返回结果示例:
{ "response": { "docs": [ { "Revenue_c":"1.08,USD" }, { "Revenue_c":"0.74,USD" }, { "Revenue_c":"1.00,USD" } ] } }
内容的提问来源于stack exchange,提问作者ryan
相关产品推荐
相关产品推荐

