【问题标题】:solr increase number of digits that tint fields can storesolr 增加 tint 字段可以存储的位数
【发布时间】:2014-01-28 02:53:33
【问题描述】:

我有一个tint 类型的price 字段,我将从该字段生成一个range facet
现在我的index 中有一些项目超过了tint 类型限制(最大整数)。
如何增加tintmax integer value

这是tintschema.xml中的定义:

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

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

【问题讨论】:

    标签: solr schema tint


    【解决方案1】:

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

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

    • 允许的最小值:-2147483648
    • 允许的最大值:2147483647

    不多也不少。


    如果以下限制适合您,您可以改用solr.TrieLongField

    可以包含 64 位带符号二进制补码整数值的数字字段。

    • 允许的最小值:-9223372036854775808
    • 允许的最大值:9223372036854775807

    【讨论】:

    • 好的,我要把price字段转成tlong类型
    • btw tlongtint 不兼容,所以我必须重新索引我的数据。
    • 是的,这是真的。但是,您可以将一个字段中的值复制到另一个字段中。
    • tint 字段复制到tlong 复制字段中?
    • 一旦真正的大核心上线并且您将只有 Solr 中的数据,您可以使用带有 SolrEntityProcessor 的 DataImportHandler 将其写回。但是您需要一个具有其他名称的新字段才能使其正常工作。
    猜你喜欢
    • 2015-09-06
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 2018-12-25
    • 2011-02-26
    • 2011-12-25
    • 1970-01-01
    • 2013-12-09
    相关资源
    最近更新 更多