我在 MOSS 设置中遇到问题,在增量爬网后,搜索结果会损坏。使用搜索 Web 服务进一步对其进行故障排除,生成的 XML 如下所示:
<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>
换句话说,它说它可以找到 34 个命中,但返回空白数据。重置搜索内容,完全爬网,一切正常一天左右,然后再次损坏。02:00 完全爬取,每 20 分钟增量爬取一次,MOSS v12.0.0.6300 on Win2003 x86。爬网日志文件没有说明任何有趣的内容。
有人有什么想法吗?
所以,似乎我已经找到了解决方案或修复方法。一只小鸟在我耳边轻声说要应用最新的 MOSS 服务包,我照做了。
现在该站点已经运行了 20 多天,没有任何搜索损坏,所以我几乎可以肯定地说 SP2 解决了这个问题。
它可能是底层 SQL Server 搜索数据库中的损坏(很可能是由 I/O 子系统问题引起的)。尝试在搜索数据库上运行以下 SQL Server 命令 - 如果它给出任何结果,则说明存在损坏问题(发布结果,我可以为您解释它们 - 我编写了 DBCC CHECKDB)。
DBCC CHECKDB (searchdbname) WITH ALL_ERRORMSGS, NO_INFOMSGS
希望这会有所帮助(这不是你的问题:-)