SOLR:带字符串的数字范围查询

时间:2016-07-06 09:24:36

标签: solr solrj

据我所知 Solr 不支持 BigDecimals 。 所以我以为我会存储"字符串"而不是"数字"。 现在的问题是范围查询不会对待 全文作为数字。

所以我的范围查询" 1到10" 会因为排序而返回类似{1,10}的内容 字符串 - > 1,10,2,3,4,5,6,7,8,9

我想知道,如果可以的话 以某种方式使 Solr 通过分析器将文本视为数字 什么的。

谢谢,

1 个答案:

答案 0 :(得分:1)

为存储创建一个单独的字段,其中字符串前缀为0,使所有字符串的大小相同。这与定义十进制(x,2)相同,您可以获得每个零件所需的精度(在点之前和点之后)。

另一种选择是使用长值(64位)并再次检索时将其除以100(或所需的精度)(只要您可以将值放在2 ^ 53内)。

这两个字段只需要编入索引而不存储(因为它们是现有字段的元版本,仅用于范围搜索)。