我有一些BigDecimal值,应该对其进行索引以进行搜索。 Lucene有NumericField,但它仅对long,double,float和int具有二传手。我可以将其存储为字符串,但是这样我将无法从NumericRangeQuery中受益。

您如何存储BigDecimals?有什么可以分享的最佳做法吗?

最佳答案

史蒂文·罗(Steven Rowe)在这篇文章中提供了有趣的想法:
http://www.lucidimagination.com/search/document/ad648772f8825a28/bigdecimal_values#2502f96055839c3d

他说,他的方案可能可以用来表示所有BigDecimal值。如果您不需要负值,则似乎更容易实现。就像mindas建议的那样,您可以扩展AbstractField来实现这一点。

还有Yonik Seeley谁说他已经在Solr中使用BCDUtils类开始了一些工作:
http://www.lucidimagination.com/search/document/ad648772f8825a28/bigdecimal_values#cef1d0e25af063ef

关于java - 如何在Lucene 3.0.1中索引BigDecimal值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2730200/

10-09 03:53