1--TEST-- 2SolrClient::addDocumnt() - Partial Update (integration) 3--SKIPIF-- 4<?php require_once 'skip.if.server_not_configured.inc'; ?> 5--FILE-- 6<?php 7 8require_once "bootstrap.inc"; 9 10$options = array 11( 12 'hostname' => SOLR_SERVER_HOSTNAME, 13 'login' => SOLR_SERVER_USERNAME, 14 'password' => SOLR_SERVER_PASSWORD, 15 'port' => SOLR_SERVER_PORT, 16 'path' => SOLR_SERVER_PATH 17); 18 19$client = new SolrClient($options); 20 21$printDocument = function() use ($client) { 22 $response = $client->getById('testing_partials'); 23 print_r($response->getResponse()); 24}; 25// clean up, before running the test 26$client->deleteById('testing_partials'); 27$client->commit(); 28 29$initialDoc = new SolrInputDocument(); 30 31$initialDoc->addField('id', 'testing_partials'); 32$initialDoc->addField('field1', 'existing value'); 33$initialDoc->addField('field1', 'remove me please'); 34$initialDoc->addField('field1', '15/01/2007'); 35$initialDoc->addField('field2_s', 'initialField'); 36$initialDoc->addField('field3_i', 0); 37$initialDoc->addField('field4', 'val1'); 38$initialDoc->addField('field5_s', 'unmodified field'); 39 40$client->addDocument($initialDoc); 41$client->commit(); 42separator('INITIAL'); 43$printDocument(); 44 45$doc = new SolrInputDocument(); 46$doc->addField('id', 'testing_partials'); 47$doc->updateField('field1', SolrInputDocument::UPDATE_MODIFIER_ADD, 'newly added value'); 48$doc->updateField('field1', SolrInputDocument::UPDATE_MODIFIER_REMOVE, 'remove me please'); 49$doc->updateField('field3_i', SolrInputDocument::UPDATE_MODIFIER_INC, 5); 50$doc->updateField('field2_s', SolrInputDocument::UPDATE_MODIFIER_SET, 'updated string'); 51$doc->updateField('field1', SolrInputDocument::UPDATE_MODIFIER_REMOVEREGEX, '[\d]{2}/[\d]{2}/[\d]{4}'); 52 53$response = $client->addDocument($doc); 54$client->commit(); 55separator('RAW REQUEST'); 56print_r($response->getRawRequest()); 57$client->commit(); 58 59separator('RESULT AFTER UPDATE'); 60$printDocument(); 61?> 62--EXPECTF-- 63=================================== INITIAL ==================================== 64SolrObject Object 65( 66 [doc] => SolrObject Object 67 ( 68 [id] => testing_partials 69 [field1] => Array 70 ( 71 [0] => existing value 72 [1] => remove me please 73 [2] => 15/01/2007 74 ) 75 76 [field2_s] => initialField 77 [field3_i] => 0 78 [field4] => Array 79 ( 80 [0] => val1 81 ) 82 83 [field5_s] => unmodified field 84 [_version_] => %d 85 ) 86 87) 88================================= RAW REQUEST ================================== 89<?xml version="1.0" encoding="UTF-8"?> 90<add overwrite="true"> 91 <doc> 92 <field name="id">testing_partials</field> 93 <field name="field1" update="add">newly added value</field> 94 <field name="field1" update="remove">remove me please</field> 95 <field name="field1" update="removeregex">[\d]{2}/[\d]{2}/[\d]{4}</field> 96 <field name="field3_i" update="inc">5</field> 97 <field name="field2_s" update="set">updated string</field> 98 </doc> 99</add> 100============================= RESULT AFTER UPDATE ============================== 101SolrObject Object 102( 103 [doc] => SolrObject Object 104 ( 105 [id] => testing_partials 106 [field1] => Array 107 ( 108 [0] => existing value 109 [1] => newly added value 110 ) 111 112 [field2_s] => updated string 113 [field3_i] => 5 114 [field4] => Array 115 ( 116 [0] => val1 117 ) 118 119 [field5_s] => unmodified field 120 [_version_] => %d 121 ) 122 123) 124 125