I'm having problems with a MOSS setup that after an incremental crawl, the search results will get corrupted. Troubleshooting it further using the search web service, the resulting XML looks like this:
<ResponsePacket xmlns="urn:Microsoft.Search.Response">
<Response domain="QDomain">
<Range>
<StartAt>1</StartAt>
<Count>20</Count>
<TotalAvailable>34</TotalAvailable>
<Results>
<Document xmlns="urn:Microsoft.Search.Response.Document">
<Action>
<LinkUrl />
</Action>
<Properties xmlns="urn:Microsoft.Search.Response.Document.Document">
<Property>
<Name>RANK</Name>
<Type>Int64</Type>
<Value>1000</Value>
</Property>
</Properties>
</Document>
<Document xmlns="urn:Microsoft.Search.Response.Document">
<Action>
<LinkUrl />
</Action>
<Properties xmlns="urn:Microsoft.Search.Response.Document.Document">
<Property>
<Name>RANK</Name>
<Type>Int64</Type>
<Value>1000</Value>
</Property>
</Properties>
</Document>
...
...
...
...
...
</Results>
</Range>
<Status>SUCCESS</Status>
</Response>
</ResponsePacket>
In other word, it says it can find 34 hits, but returns blank data. Doing a reset of the search content, a full crawl, everything works for a day or so, then it gets corrupted again. Full crawl at 02:00, incremental crawl every 20 minutes, MOSS v12.0.0.6300 on Win2003 x86. The crawl log files says nothing of interest.
Anyone has any ideas?
So, it seems that I have found the solution, or a fix. A little bird whispered in my ear to apply the latest MOSS Service Pack, which I did.
Now the site(s) has been running for over 20 days without any search corruptions, so I can almost certainly say that SP2 fixed the issue.
It could be corruption in the underlying SQL Server search database (most likely caused by I/O subsystem issues). Try running the following SQL Server command on the search database - if it gives any results, you have corruption problems (post the results and I can interpret them for you - I wrote DBCC CHECKDB).
DBCC CHECKDB (searchdbname) WITH ALL_ERRORMSGS, NO_INFOMSGS
Hope this helps (and isn't your problem :-)