Customer creates a Records Center site collection as a centralized place for archived documents and they don't want to include archived documents in the global search results (All Sites search) even when the user has the right permission to access these documents, but the content should still be available if user goes to the site and does a local search there (This Site search).
Also customer uses single SSP, single Web Application for Records Center site collection and Portal. Creating a separate SSP for this scenario is a little bit overkill.
I did some research and seemed like most of the search settings are all global like Crawl Rule in Search Settings in SSP admin, Search Visibility in Site Administration, etc. If I exclude this site collection from being crawled, then I can't search locally from within Records Center site either.
Eventually a Search expert directed me to the right place and the solution was quite simple actually. It should apply to many other common scenarios when you want to hide certain site collections from global search while not their own local search.
Here's the solution:
- In SSP admin->Search Settings, select View Scopes
- Select All Sites to enter Scope Properties and Rules page
- Click New Rule to create a new rule
- Check Web Address for Scope Rule Type, enter path to the site collection you want to exclude, for example http://server/sites/recordscenter
- Check Exlcude for Behavior
- Click OK to save.
- Go back to Search Settings and start a full crawl
- Now go to the Portal, with All Sites selected for the scope in Search Box, type some keywords to test (for example something you know exist in the site excluded from the scope). Make sure items contain that keyword do not display here
- Now browse to the site http://server/sites/recordscenter, with "This Site" selected in scopes dropdown in the search box, type in the same keyword from previous step and make sure the items contain that keyword do display here.