DSE Solr:CopyField 行为

DSE Solr : CopyField behavior

我在 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 - build_status_b 类型为布尔值,我预计会看到错误或者它会保留 0 和 1 并忽略 45 和 67,因为这些数字不会进入布尔合同。但是,有趣的是,我可以搜索 build_status_b:(0 1 45 67) 的所有值。 copyFields 是如何工作的,如果它索引任何源字段,那么声明字段类型的意义所在 build_status_b ?

如果您查看 Solr wiki 上的以下文档 link,您将看到 bool 字段类型将解释这些值以形成布尔值:

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

Contains either true or false. Values of "1", "t", or "T" in the first character are interpreted as true. Any other values in the first character are interpreted as false.

这里是 copyFields 的 Solr 文档供参考:

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

因此对于您的上述值,它们将代表规定的布尔等价物:

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