2014-01-09 22 views
1

我有一个price字段,类型为tint,从中我将生成一个range facet
而我现在有一些项目在我的index中,超过了tint类型限制(最大整数)。
如何增加tintmax integer valuesolr增加色调字段可以存储的位数

这里是schema.xmltint定义:

<fieldType name="tint" class="solr.TrieIntField" precisionStep="8" positionIncrementGap="0"/>

我必须增加precisionStep=8?因为尝试插入一个数字时发生错误,该数字的# of digits = 10

回答

1

您不能在TrieIntField中插入一个大于Java的Integer.MAX_VALUE的整数值。只是因为它是一个包装。你不可以做这个。技术上不可能。参考the documentation可能是

可包含32位有符号二进制补码整数值的数字字段。

  • 最小值允许:-2147483648
  • 最高值允许:2147483647

仅此而已,无所不及。


你可以切换到solr.TrieLongField相反,如果以下限制是你

的数字字段,可以包含64位有符号二进制补整数值确定。

  • 最小值允许:-9223372036854775808
  • 最高值允许:9223372036854775807
+0

好吧,我必须把'price'场'tlong'型 – h4k1m

+0

顺便说一句'tlong'心不是用'兼容色调“,所以我必须重新编制我的数据。 – h4k1m

+0

是的,这是真的。但是,您可以将一个字段的值复制到另一个字段中。 – cheffe