2017-01-23 11 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 типа boolean, я должен был увидеть либо ошибку, либо Он будет содержать 0 и 1 и игнорировать 45 и 67, поскольку эти числа не входят в логический контракт. Но, интересно, я смог найти build_status_b: (0 1 45 67) со всеми значениями. Как работает copyFields, и если он индексирует все исходные поля, что является точкой объявления типа для поля build_status_b?

ответ

0

Если посмотреть по следующей ссылке док на вики Solr вы увидите, что тип BOOL поле будет интерпретировать эти значения, чтобы сформировать логическое значение:

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

Содержит либо истинно, либо ложный. Значения «1», «t» или «T» в первом символе интерпретируются как истинные. Любые другие значения в первом символе интерпретируются как ложные.

Для справки Heres Документов Solr для copyFields:

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

Так для указанных выше значений, которые они будут представитель указанных логических эквивалентов:

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

Спасибо маркировать для объяснение. Цените свою помощь по этому поводу. – akr