Example #1
0
 public static function setIndexesXML($manageClient)
 {
     parent::$logger->debug('setIndexes');
     $db = new MLPHP\Database($manageClient, 'mlphp-test-db');
     // Set range attribute indexes
     parent::$logger->debug('Add Range Attribute Index: type');
     $type = array('scalar-type' => 'string', 'parent-localname' => 'bill', 'localname' => 'type');
     $db->addRangeAttributeIndex($type);
     parent::$logger->debug('Add Range Attribute Index: number');
     $number = array('scalar-type' => 'int', 'parent-localname' => 'bill', 'localname' => 'number');
     $db->addRangeAttributeIndex($number);
     // Set path range index
     parent::$logger->debug('Add Range Attribute Index: date');
     $date = array('scalar-type' => 'string', 'path-expression' => 'introduced/@date');
     $db->addRangePathIndex($date);
     // Set range element indexes
     parent::$logger->debug('Add Range Element Index: status');
     $status = array('scalar-type' => 'string', 'localname' => 'status');
     $db->addRangeElementIndex($status);
     parent::$logger->debug('Add Range Element Index: subject');
     $subject = array('scalar-type' => 'string', 'localname' => 'subject');
     $db->addRangeElementIndex($subject);
     parent::$logger->debug('Add Range Element Index: title');
     $title = array('scalar-type' => 'string', 'localname' => 'title');
     $db->addRangeElementIndex($title);
     // Fields
     parent::$logger->debug('Add Field Range Indexes');
     $fieldPath = new MLPHP\FieldPath(array('path' => 'meta', 'weight' => 1.5));
     $included = new MLPHP\FieldElementIncluded(array('localname' => 'number', 'weight' => 1.7));
     $excluded1 = new MLPHP\FieldElementExcluded(array('localname' => 'session'));
     $excluded2 = new MLPHP\FieldElementExcluded(array('localname' => 'abbrev'));
     // Field Range Index: type, number
     $field1 = new MLPHP\Field(array('field-name' => 'field1', 'field-path' => $fieldPath, 'excluded-element' => array($excluded1, $excluded2)));
     $db->addField($field1);
     $db->addRangeFieldIndex(array('field-name' => 'field1'));
     // Field Range Index: session/number, type, number
     $field2 = new MLPHP\Field(array('field-name' => 'field2', 'field-path' => $fieldPath, 'included-element' => $included, 'excluded-element' => array($excluded1, $excluded2)));
     $db->addField($field2);
     $db->addRangeFieldIndex(array('field-name' => 'field2'));
     // Field: type, number, abbrev
     $field3 = new MLPHP\Field(array('field-name' => 'field3', 'field-path' => $fieldPath, 'excluded-element' => $excluded1));
     $db->addField($field3);
     // to enable collection constraints
     parent::$logger->debug('Enable Collection Lexicon');
     $db->setProperty('collection-lexicon', 'true');
 }