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

发布于 2024-11-01 06:17:43 字数 286 浏览 4 评论 0原文

我们的 SharePoint-2007 门户的用户将能够创建自己的网站和子网站。这些网站将是可搜索的,但搜索将仅限于该网站和子网站(如果有)。

我正在尝试使用自己的逻辑代码(c#)和自定义 UI 开发一个自定义搜索页面。此自定义搜索页面将成为网站模板的一部分。我不确定对搜索页面和网站模板进行编码的最佳方法是什么。我使用什么范围?每次用户创建网站时我都需要创建一个新范围吗?开箱即用的 SharePoint 搜索页面有一个范围下拉列表,其中包含“此网站”选项。但我在“搜索管理”下的范围列表中没有看到该范围。非常欢迎任何帮助或指示。提前致谢。

Users of our SharePoint-2007 Portal will have the ability to create their own site and sub-sites. These sites will be searchable but the search will be limited to the site and sub-sites if any.

I am trying to develop a custom search page with its own code behind logic (c#) and custom UI. This custom search page will be part of the site template. I am not sure what is the best way to go about coding the search page and the site template. What scope do I use? Do I need to create a new scope every time a user creates a site? The out of the box SharePoint search page has a scope dropdown with the option "This Site". But I don't see that scope in the list of scopes under Search Administration. Any help or pointers are most welcome. Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

挥剑断情 2024-11-08 06:17:43

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

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

  • k= :关键字,您要搜索的术语。
  • cs=This%20Site :上下文范围,您要使用的范围(也可以使用 This%20List)。
  • u=:Url,您要将搜索结果限制到的网站。

当我们构建 Intranet 门户时,我们创建了一个自定义的 搜索中心。它处理企业搜索任务,但如果您向其传递上述相同的参数,它还将提供站点范围和列表范围的搜索。通过这种方式,我们能够拥有一个提供搜索功能的中心位置,一个自定义/样式的位置,并且我们所有的搜索的外观和行为都以相同的方式进行。

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

"This Site" and "This List" scopes are not true scopes. They represent functionality that is built in to the MOSS search code. Those "scopes" are invoked via special querystring parameters (i.e. property filters).

By default when you perform those searches, it redirects to a page called OSSSearchResults.aspx that looks like part of the local site. Take note of the querystring parameters:

  • k=<search_terms> : Keyword(s), the terms you're searching for.
  • cs=This%20Site : Contextual scope, the scope you want to use (can also use This%20List).
  • u=<site_url> : Url, the site you want to constrain the search results to.

When we built our intranet portal, we created a customized Search Center. It handles enterprise search tasks, but if you pass it the same parameters noted above, it will also provide the Site- and List-scoped searches. In this way, we're able to have one central place to provide search functionality, one place to customize/style, and all of our searches look and behave in the same way.

In each site, as part of our page layout, we have a search box specifically for "This Site". When you search from it, we simply POST the appropriate parameters back to our search center, and there you have it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文