【问题标题】:DSE Solr : CopyField behaviorDSE Solr:复制字段行为
【发布时间】:2017-06-08 14:38:39
【问题描述】:

我在 Solr schema.xml 中定义了整数字段,如下所示。 <field indexed="true" multiValued="false" name="build_status" stored="true" type="TrieIntField"/> 并使用布尔类型复制定义如下的字段。

<field name="build_status_b" stored="false" indexed="true" type="boolean" multiValued="false"/> <copyField dest="build_status_b" source="build_status"/>

我设置了 build_status 值,它是具有以下值的整数。 0、1、45、67 由于我的 copyField - boolean 类型的 build_status_b,我预计会看到错误或它将保存 0 和 1 并忽略 45 和 67,因为这些数字不会进入布尔合同。但是,有趣的是,我可以使用所有值搜索 build_status_b:(0 1 45 67)。 copyFields 是如何真正工作的,如果它索引任何源字段,那么声明字段 build_status_b 的类型有什么意义?

【问题讨论】:

    标签: java solr datastax datastax-enterprise


    【解决方案1】:

    如果您查看 Solr wiki 上的以下文档链接,您会发现 bool 字段类型会将这些值解释为布尔值:

    https://cwiki.apache.org/confluence/display/solr/Field+Types+Included+with+Solr

    包含真或假。第一个字符中的“1”、“t”或“T”值被解释为真。第一个字符中的任何其他值都被解释为 false。

    复制字段的 Solr 文档供参考:

    https://cwiki.apache.org/confluence/display/solr/Copying+Fields

    因此,对于您的上述值,它们将代表所述布尔等效项:

    0  - false
    1  - true
    45 - false
    67 - false
    

    【讨论】:

    • 感谢mark的解释。感谢您在这方面的帮助。
    猜你喜欢
    • 2014-05-01
    • 1970-01-01
    • 2014-05-06
    • 2013-12-28
    • 1970-01-01
    • 2013-12-02
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多