I recently ran into a problem dealing with searching on a server running Small Business Server 2003. It appeared that Search would work for a short time, and then would simply not return any results. Upon further investigation, we found a warning message in the Application Event Log. The warning was as follows:
|
Source: Windows SharePoint Services 3 Search Description: Context: Application 'Search index file on the search server', Catalog 'Search' Details: |
At first we were unable to decipher the message correctly, and thought there must be a problem with WSS search finding the index files, or that the index files were created incorrectly. We stopped the Windows SharePoint Services Search service in the Services on Server section under Operations in Central Admin. By stopping the service, you effectively stop the Windows service as well as delete any existing index files. After stopping the service, we turned right around again and started the service again. This lets you specify new settings for the search accounts, database and crawl frequency. Once the service started again we ran into a new error when we tried to perform a search. The error stated that "Your search cannot be completed because this site is not assigned to an indexer. Contact your administrator for more information."
So.. We had to figure out how to hook the site back up to the search server, which was not as apparent as one would hope. Rather than a setting for a web application, it is a setting for a content database, as the search will really be running directly against the content database(s) for the site. in order to find the setting to assign an indexer to the site, you need to click on the Content Databases link from the Application Management section of central admin.
From here you can select the content database for the site you are working with and then reconnect it to the search server.
Your search service will then crawl your site again according to the search frequency you set in the service properties. However, if you want to force a crawl, you can use STSADM.exe with the following command:
stsadm.exe -o spsearch -action fullcrawlstart
After all this reconfiguring we discovered that our search continued to not return any results. We finally discovered that the testing we were doing for the site was from a remote computer, and we were running central admin from the server. We had never tested accessing the site directly from the server. Once we tried that we figured out that we were unable to resolve the site's url directly from the server. The site had been added to the server DNS structure, but the server still wasn't able to resolve the address. Finally we discovered that our server was using the service providers DNS server as the primary server, and itself as the secondary DNS server. Once we switched these around, we were able to browse the site directly from the server, and the search was then able to correctly crawl and search the contents of the site. In hind-sight, if we go back to the original warning message – the object that could not be found was not the index — it was the site itself!
This problem was very unique to the setup of Small Business Server and DNS, but a good lesson that for search (and other webparts) the server has to be able to see itself. We also learned a lot about configuring WSSv3 search, and how to find the hidden connection between Search Servers and Content Databases. Hopefully this will help if you run across any of the errors we ran into along the way.