在Solr中索引代表金钱的小数的最佳方法是什么?

时间:2012-11-12 00:42:11

标签: mysql solr dih solr4

我在MySQL表中有一个代表金钱的十进制列。我想使用数据导入处理程序将此数据导入Solr。我不确定存储这些数据的最佳方法是什么。我想到了这些选择:

Float:会引入不准确之处。

字符串:会使搜索范围变得困难。

Int:要求每个数字在被索引之前乘以100,并在检索时除以100。

货币:Solr 4.0的新功能。此字段类型是否合适,还是用于转换货币?

我正在使用Solr 4.0.0。

2 个答案:

答案 0 :(得分:3)

基于Solr Wiki上CurrencyField定义中的信息。此字段类型听起来像是适合您的解决方案。它提供货币转换,但这只是您应该选择使用该功能。请注意,此字段类型尚不支持按范围划分。

答案 1 :(得分:0)

正如Paige建议的那样,CurrencyField是适当的使用领域。

但是如果你需要按范围进行分面,你可以使用第二个浮点字段,indexed = true,stored = false,并使用copyfield从原始字段复制到浮点字段。然后,您可以使用此不准确的浮点字段进行范围查询的方面,并将原始货币用于其他所有内容。

相关问题