DSE Solr:CopyField行为

时间:2017-01-23 23:07:20

标签: java solr datastax datastax-enterprise

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

<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声明类型的重点是什么?

1 个答案:

答案 0 :(得分:0)

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

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

  

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

作为参考,参见了copyFields的Solr文档:

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

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

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