2017-01-23 31 views
1

我已经在Solr schema.xml中定义了如下的整数字段。 <field indexed="true" multiValued="false" name="build_status" stored="true" type="TrieIntField"/> 复制字段定义如下布尔类型。DSE Solr:CopyField行为

<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)所有的值。 复制字段如何真正起作用,并且它是否索引了任何源字段,对于字段build_status_b,什么是声明类型的要点?

回答

0

如果你看一下在Solr的维基以下文档的链接,你会看到,布尔字段类型会解释这些值来形成一个布尔值:

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

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

仅供参考继承人Solr的文档的copyFields:

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

因此,对于你上面的值,他们将代表所陈述的布尔等价的:

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

谢谢大关说明。感谢您的帮助。 – akr