SOLR具有特殊的货币类型(CurrencyFieldType https://solr.apache.org/guide/solr/latest/indexing-guide/currencies-exchange-rates.html)。
我猜它支持按一种货币的价值排序,而其他货币的价格是即时转换的。它是如何实现的,它的时间复杂度是多少?它是否需要扫描所有价格,转换它们并排序?或者它以某种方式使用每种货币的索引?或者当汇率改变时,一些索引被重新计算(因此汇率不能每秒都改变)?
SOLR具有特殊的货币类型(CurrencyFieldType https://solr.apache.org/guide/solr/latest/indexing-guide/currencies-exchange-rates.html)。
我猜它支持按一种货币的价值排序,而其他货币的价格是即时转换的。它是如何实现的,它的时间复杂度是多少?它是否需要扫描所有价格,转换它们并排序?或者它以某种方式使用每种货币的索引?或者当汇率改变时,一些索引被重新计算(因此汇率不能每秒都改变)?
1条答案
按热度按时间0sgqnhkj1#
currencyFieldType在
schema.xml
中定义。这是此类型的默认配置,实现方式如下。在此示例中,您会注意到:
1.我已经定义了字段类型的name和class,并将defaultCurrency定义为“USD”,表示美元。
1.我还定义了一个currencyConfig来使用一个名为“currency.xml”的文件。这是一个我们的默认货币与其他货币之间的汇率文件。
1.在编制索引时,货币字段可以用本机货币编制索引。例如,如果电子商务网站上的产品以欧元列出,则将价格字段编制为“1000,EUR”将适当地编制索引。价格应该用逗号与货币分隔,并且价格必须用浮点值(小数点)编码。
有关使用货币和汇率的详细信息,请参阅此处的链接