If you're comfortable writing your own modules, there's a hook that can help you exclude certain nodes from the index: hook_apachesolr_node_exclude($node, $namespace).
This is invoked by the apachesolr module for each node that qualifies to be added to the index. If the function returns TRUE, the node is skipped for indexing. However, nodes which are already index will not just be removed because of the TRUE return value. That only prevents nodes from being added. You'll have to clean up your index by calling apachesolr_delete_node_from_index().
See the here for additional information: http://api.drupalhelp.net/api/apachesolr/apachesolr.api.php/function/hook_apachesolr_node_exclude/7
Hope this is enough to get you started!
There were some modules in Drupal 6 to help with this, such as http://drupal.org/project/apachesolr_exclude, but I don't know of any good ones for Drupal 7.