2017-01-23 34 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