用于 SharePoint 2010 Search 和 FAST Search for SharePoint 的免费开发人员搜索工具
用于 SharePoint 2010 Search 和 FAST Search for SharePoint 的免费开发人员搜索工具
几个月来,我一直断断续续地在编写一个旨在帮助处理 SharePoint 2010 中的查询引擎的开发人员工具。该工具的完成历经了很长时间,现在终于准备就绪,有机会供一些用户使用了。我一直主张在 CodePlex 中提供该工具作为一个社区计划,以便其他人能够参与讨论并提出改进,但尚未完全做到这一点。
最初编写该工具是作为原有的 MOSS Query Tool for SharePoint 2007 的升级,后者具是对 SharePoint Query Tool for SharePoint 2003 的升级;是的,我在此方面研究很长一段时间了。我在原有 MOSS 查询工具中添加了许多增强功能,因此与原来有很大差别。我还添加了一个屏幕,只用于在此应用程序中管理搜索服务的各个部分。我厌倦了在查询工具与浏览器之间不断往返,以尝试在搜索服务中更改一些内容,然后找出其真正的价值等。因此,为了应对这种情况,应用程序启动时的第一个屏幕将提供有关搜索服务的大量信息。由于现在可以有多个搜索服务,您只需单击一个按钮便可获得搜索服务的列表,该工具将检索所有搜索服务,包括您正使用的来自其他场的搜索服务的代理。在获取搜索服务的详细信息后,您可以执行诸如查看所有内容源、获取爬网状态和获取该内容源的起始地址列表之类的操作。您在该工具中即可启动完整或增量爬网,还可以为内容源添加和/或删除其他起始地址。
下面是该工具的开始屏幕示例;此图是“慢速拍摄的”,以便您可以看到不同的快捷菜单:
在屏幕顶部,您会看到有关该搜索应用程序的一些基本信息,也可以从此工具中修改这些信息。主要兴趣点可能是查询日志记录和启用查询建议。在“关键字和最佳匹配”(keywords and best bets) 部分,您可以轻松查找在不同网站集中定义的最佳匹配,并了解您执行的不同查询的预期结果。在“爬网规则”(Crawl Rules) 部分,可以了解为搜索应用程序定义的所有爬网规则,以免您担心是否排除了某些内容或者是否以某种方式对其执行了不同的爬网操作。在“托管属性”(Managed Properties) 部分,您可以查看在搜索应用程序中定义的所有托管属性。此处的视图只显示了每个托管属性的一些属性(在此屏幕中还可以更改“使用范围”(Use In Scopes) 权限),但如果双击某托管属性,则可获得一个单独的对话框,其中包括该托管属性的所有属性。然后,可从该对话框中更改该属性 (property) 的相应特性 (attribute)。下面是具体外观:
“范围”(scopes) 部分显示已定义的不同范围。您还可以在该部分查看诸如这样的情况:它是否在管理 UI、其他搜索结果页等组件中显示。最后,屏幕最下方显示任何 FAST 用户上下文属性。通过这些属性可按照以下博客文章中所述为 FAST Search for SharePoint 创建用户上下文:https://blogs.technet.com/b/speschka/archive/2009/12/09/using-custom-properties-to-create-a-fast-search-for-sharepoint-2010-user-context.aspx(该链接可能指向英文页面)。
当您单击“查询”(Queries) 选项卡时,将切换到一个与您过去在 MOSS 查询工具中使用的屏幕很相似的屏幕。在此,可以实际创建要针对 SharePoint 或 FAST 执行的查询并获取一些搜索结果。该屏幕如下所示:
您会再次看到所有托管属性的列表。可以选中任何托管属性旁边的“包含”(Include) 框,以便在查询结果中返回该属性。可在“条件”(Criteria) 列中键入任何托管属性的查询条件。还可以在“查询”(Query) 编辑字段中键入要在文档或项目中的任意位置查找的词语。与以前一样,此时可以单击“创建 SQL”(Make SQL) 按钮,它将创建用于对 SharePoint 查询 Web 服务执行查询的 SQL。当您按下“运行查询”(Run Query) 按钮时,将执行查询并显示一个包含结果的新对话框。下面是一些搜索结果的示例:
在查询结果中,您可以获得一些重要信息。在屏幕顶部,将显示发送给查询 Web 服务以执行查询的 Xml。因此,如果您使用对象模型进行查询,则可直接从“查询”(Queries) 选项卡中复制 SQL;如果您使用的是“搜索”Web 服务,则可直接从此搜索结果页中复制 Xml。您还可以查看从查询中返回的所有匹配项,从而了解您的查询是否成功。在屏幕的下方,您将看到返回的其他一些数据(假定您要求以数据集而非 Xml 的形式查看结果)。左侧的“最佳匹配”(best bets) 网格显示来自 FAST 的可视化最佳匹配。中间的“特殊词”(Special Terms) 网格显示已在网站集中为 SharePoint 搜索添加的最佳匹配。右侧的“优化”(Refinements) 网格显示在查询中返回的任何优化;仅在查询 FAST 并且在“查询”(Queries) 选项卡中选中“包括优化”(Include Refinements) 复选框时,此网格才起作用。
增加对 FQL(FAST 查询语言)的支持实际上是对 MOSS 查询工具的最大改进。FAST 不支持 SharePoint Search SQL 语法,因此您只能使用 FAST 搜索应用程序执行关键字查询或 FQL 查询。关键字查询应该相当简单,但对于大部分 SharePoint 用户而言,FQL 是一个全新事物。为了便于推进学习进程,“查询”(Queries) 选项卡中包括指出“选择 FQL...”(Select FQL...) 的下拉框。该下拉框包含许多不同的 FQL 查询示例。这种方法很简单,便于您随时都能使用各种 FQL 子句和匹配选项,然后运行这些选项,以查看可在 FQL 中完成的不同任务。我还在上面提供了一个链接,通过该链接可以转到 MSDN 中的 FQL 语法帮助。如果您正在查看下拉框中的各种 FQL 选项并对其工作方式感到困惑,只需单击该链接便可打开 FQL 帮助并阅读详细信息。下面是一个简单的 FQL 搜索结果示例,其中还显示了返回的一些优化:
虽然该工具比较小,但足以让您开始考虑如何使用它。就其价值而言,我始终发现此工具和 MOSS 查询工具确实很有用。不仅在执行自定义搜索开发时有用,而且在尝试排除场中的搜索问题时甚至更有用。没有什么能比弹出这个小工具并运行各种自定义查询更能帮助确定问题所在。我在本文中添加了 ZIP 附件,其中包含您需要的文件。如果您对要查看的内容有任何建议,尽请在评论中留言。如上文所述,如果您有兴趣将此移至 CodePlex 并让其他人参与进来(坦率地讲,我现在有点厌倦开发该工具了),那么我或许能够满足您的要求。祝您愉快。
2010 年 8 月 20 日更新:添加了对创建和管理映射属性的支持。最初忽略了这一功能,这是很愚蠢的做法,因为这是使用自定义搜索开发执行的最常见任务。还添加了对更新内容源的爬网状态的支持。所以,当您现在开始爬网时,将可以看到正在执行的操作。
2010 年 8 月 22 日更新:添加了对将托管属性 (property) 的所有特性 (attribute) 导出到 Xml 文件的支持,以便您可以脱机查看该属性。添加了对从相同格式的 Xml 文件中导入的支持,以便您可以将某托管属性的配置方式复制到其他托管属性。
这是一篇本地化的博客文章。请访问 Free Developer Search Tool for SharePoint 2010 Search and FAST Search for SharePoint 以查看原文