我在vb.net应用程序中有一个搜索Web引用(来自Search Server 2010 Express安装),该应用程序利用QueryService类搜索生产Sharepoint Foundation 2010站点。
在之前的某个时间点,我们已经在一个完全测试系统上创建了一个概念证明,该系统已被草坪化。从我对此测试系统的回忆中,当文档作为特定站点内容类型(继承自文档)上传并提供元数据时,我们可以通过为每个元素创建托管属性来搜索特定元数据,并且搜索结果将作为文档返回(将isdocument标志设置为true)。然后查看文档变得简单,因为我们可以简单地使用文件名和路径来显示存储的文件。
现在我们正在开发一个生产系统,我们遇到了一个新的行为,现在这些结果作为aspx结果返回,如
http://digitizaton/Company/Client Documents/Forms/DispForm.aspx?ID=1703
这当然使得查找和查看文档非常困难,我们可以提取标题,然后将为我们提供没有扩展名的文件的名称,但这几乎没有帮助,因为FileExtension数据是aspx,而不是文件扩展名,所以我们没有完整的文件名。我们可以显示返回的页面作为结果,但更喜欢文档本身。
我已经制作了一个测试文档库,只设置了裸机(不使用网站内容类型或网站列)并在同一网站上传了一些文档,并以同样的方式返回,所以我不要相信文档库或内容类型是问题。
由于对Sharepoint和Search Server的理解相当有限,我不知道这是搜索服务本身,网站配置还是我发送的查询包的设置问题。我们还在服务器上安装了第三方应用程序(Knowledgelake),该应用程序与sharepoint相关联,这可能也改变了某些地方的配置?
我认为查询数据包没有改变,因为它在概念验证中工作,而不是自定义数据列名称。我会在这里提供它,以防外部读者有明显的东西。
<QueryPacket xmlns='urn:Microsoft.Search.Query.Document'>"
<Query>
<SupportedFormats>
<Format>urn:Microsoft.Search.Response</Format>
</SupportedFormats>
<Range>
<Count>0</Count>
</Range>
<Context>
<QueryText type='MSSQLFT'>
SELECT Filename, Title, FileExtension, IsDocument, Path from Scope() WHERE ""Scope"" = 'Department1' AND CustomData = 'X' --
</QueryText>
</Context>
任何指导都会非常感激。如果我没有提供相关信息,请告诉我,我可以追踪它。
谢谢大家
答案 0 :(得分:1)
所以现在我觉得自己像个白痴,我已经搜了好几个小时而没有运气,在撰写这篇文章后几秒钟,我找到了我一直在寻找的金块。
我们的主要文件类型PDF似乎与Sharepoint 2010存在已知问题,如以下网站所示。
http://www.sharepointsharon.com/2010/03/sharepoint-2010-and-adobe-pdf/
此外,需要此注册表项设置才能将它们全部链接