如何编码自定义搜索页面以仅在SharePoint 2007中搜索当前网站和子网站?

问题描述:

我们的SharePoint-2007门户网站的用户将有能力创建自己的网站和子网站。这些网站将被搜索,但搜索将限于网站和子网站(如果有的话)。如何编码自定义搜索页面以仅在SharePoint 2007中搜索当前网站和子网站?

我想开发一个自定义的搜索页面,其逻辑(c#)和自定义用户界面背后有自己的代码。此自定义搜索页面将成为网站模板的一部分。我不确定编码搜索页面和网站模板的最佳方法是什么。我使用什么范围?每次用户创建网站时,是否需要创建新范围?开箱即用的SharePoint搜索页面具有选项“本网站”的范围下拉菜单。但是我没有在搜索管理下的范围列表中看到该范围。任何帮助或指针是最受欢迎的。提前致谢。

“本网站”和“本列表”范围不是真正的范围。它们代表内置于MOSS搜索代码中的功能。这些“范围”通过特殊查询字符串参数(即property filters)被调用。

默认情况下,当您执行这些搜索时,它将重定向到名为的OSSSearchResults.aspx页面,该页面看起来像本地站点的一部分。注意查询字符串参数:

  • k=<search_terms>:关键字,您正在搜索的术语。
  • cs=This%20Site:上下文范围,您想要使用的范围(也可以使用This%20List)。
  • u=<site_url>:网址,您想限制搜索结果的网站。

当我们建立我们的内部网门户时,我们创建了一个自定义的Search Center。它处理企业搜索任务,但如果您将上述相同的参数传递给它,它还将提供网站和列表范围的搜索。通过这种方式,我们可以拥有一个中心位置来提供搜索功能,一个地方可以自定义/样式,我们所有的搜索都以相同的方式显示和行为。

在每个网站中,作为我们页面布局的一部分,我们有一个专门用于“本网站”的搜索框。当您从中搜索时,我们只需将POST的适当参数返回到我们的搜索中心,然后您就可以拥有它。