Beispiel #1
0
function scrubIndex($collection_ascii_id, $config, $db, $display = true)
{
    $solr_version = '2.2';
    $solr_base_url = $config->getSearch('solr_base_url');
    $solr_update_url = $solr_base_url . '/update';
    $j = 0;
    for ($i = 0; $i < 999999; $i++) {
        if (0 === $i % 100) {
            $solr_search_url = $solr_base_url . '/select/?q=c:' . $collection_ascii_id . '&version=' . $solr_version . '&rows=100&start=' . $i;
            list($http_code, $res) = Dase_Http::get($solr_search_url, null, null);
            $sx = simplexml_load_string($res);
            $num = 0;
            foreach ($sx->result as $result) {
                if (count($result->doc)) {
                    foreach ($result->doc as $doc) {
                        foreach ($doc->str as $str) {
                            if ('_id' == $str['name']) {
                                $j++;
                                if ($display) {
                                    print "START {$i} ({$j}) ";
                                }
                                $unique = (string) $str;
                                if (Dase_DBO_Item::getByUnique($db, $unique)) {
                                    if ($display) {
                                        print "FOUND {$unique}\n";
                                    }
                                } else {
                                    $num++;
                                    $delete_doc = '<delete><id>' . $unique . '</id></delete>';
                                    $resp = Dase_Http::post($solr_update_url, $delete_doc, null, null, 'text/xml');
                                    if ($display) {
                                        print "SCRUBBED {$unique}\n";
                                    }
                                }
                            }
                        }
                    }
                } else {
                    Dase_Http::post($solr_update_url, '<commit/>', null, null, 'text/xml');
                    return "scrubbed {$num} records";
                }
            }
        }
    }
}