2012-11-12 64 views
2

我在一個代表金錢的MySQL表中有一個小數列。我想使用數據導入處理程序將這些數據導入Solr。我不確定存儲這些數據的最佳方式是什麼。我曾想到這些選項:在Solr中索引代表貨幣的小數的最佳方法是什麼?

浮點:會引入不準確。

字符串:會使搜索範圍變得困難。

Int:在索引前需要將每個數字乘以100,並在檢索時除以100。

貨幣:新到Solr 4.0。這種字段類型是否合適,還是用於金錢轉換?

我正在使用Solr 4.0.0。

回答

3

根據Solr Wiki上CurrencyField定義的信息。這種字段類型聽起來像是適合您的解決方案。它提供了資金轉換,但只有在您選擇使用該功能時纔是如此。請注意,此範圍類型尚未提供範圍分面。

+0

您是否知道CurrencyField(Decimal-> CurrencyField)是否存在數據導入處理程序轉換器? – Kevin

+0

看起來像NumberFormatTransformer通過'formatStyle'屬性與貨幣字段類型一起工作 - http://wiki.apache.org/solr/DataImportHandler#NumberFormatTransformer –

+0

這是用於將貨幣格式的字符串轉換爲十進制數字(而不是其他方式)。我今天已經嘗試過了。 – Kevin

0

由於Paige建議,CurrencyField是適當的領域使用。

但是,如果您需要按範圍分面,可以使用第二個浮點字段,indexed = true,stored = false,並使用copyfield將原始字段複製到浮點字段。然後,您可以使用此不準確的浮點字段進行範圍查詢,並將原始貨幣用於其他所有內容。

相關問題