function testPartialUpdate() { $initialSource = new Search_ContentSource_Static(array('HomePage' => array('data' => 'initial'), 'SomePage' => array('data' => 'initial'), 'Untouchable' => array('data' => 'initial')), array('data' => 'sortable')); $finalSource = new Search_ContentSource_Static(array('SomePage' => array('data' => 'final'), 'OtherPage' => array('data' => 'final'), 'Untouchable' => array('data' => 'final')), array('data' => 'sortable')); $dir = dirname(__FILE__) . '/test_index'; $edir = escapeshellarg($dir); `rm -Rf {$edir}`; $index = new Search_Lucene_Index($dir); $indexer = new Search_Indexer($index); $indexer->addContentSource('wiki page', $initialSource); $indexer->rebuild(); $indexer = new Search_Indexer($index); $indexer->addContentSource('wiki page', $finalSource); $indexer->update(array(array('object_type' => 'wiki page', 'object_id' => 'HomePage'), array('object_type' => 'wiki page', 'object_id' => 'SomePage'), array('object_type' => 'wiki page', 'object_id' => 'OtherPage'))); $query = new Search_Query(); $query->filterType('wiki page'); $result = $query->search($index); $this->assertEquals(3, count($result)); $doc0 = $result[0]; $doc1 = $result[1]; $doc2 = $result[2]; $this->assertEquals('Untouchable', $doc0['object_id']); $this->assertEquals('initial', $doc0['data']); $this->assertEquals('final', $doc1['data']); $this->assertEquals('final', $doc2['data']); `rm -Rf {$edir}`; }