1

我們的SharePoint-2007門戶網站的用戶將有能力創建自己的網站和子網站。這些網站將被搜索,但搜索將限於網站和子網站(如果有的話)。如何編碼自定義搜索頁面以僅在SharePoint 2007中搜索當前網站和子網站?

我想開發一個自定義的搜索頁面,其邏輯(c#)和自定義用戶界面背後有自己的代碼。此自定義搜索頁面將成爲網站模板的一部分。我不確定編碼搜索頁面和網站模板的最佳方法是什麼。我使用什麼範圍?每次用戶創建網站時,是否需要創建新範圍?開箱即用的SharePoint搜索頁面具有選項「本網站」的範圍下拉菜單。但是我沒有在搜索管理下的範圍列表中看到該範圍。任何幫助或指針是最受歡迎的。提前致謝。

回答

1

「本網站」和「本列表」範圍不是真正的範圍。它們代表內置於MOSS搜索代碼中的功能。這些「範圍」通過特殊查詢字符串參數(即property filters)被調用。

默認情況下,當您執行這些搜索時,它將重定向到名爲的OSSSearchResults.aspx頁面,該頁面看起來像本地站點的一部分。注意查詢字符串參數:

  • k=<search_terms>:關鍵字,您正在搜索的術語。
  • cs=This%20Site:上下文範圍,您想要使用的範圍(也可以使用This%20List)。
  • u=<site_url>:網址,您想限制搜索結果的網站。

當我們建立我們的內部網門戶時,我們創建了一個自定義的Search Center。它處理企業搜索任務,但如果您將上述相同的參數傳遞給它,它還將提供網站和列表範圍的搜索。通過這種方式,我們可以擁有一箇中心位置來提供搜索功能,一個地方可以自定義/樣式,我們所有的搜索都以相同的方式顯示和行爲。

在每個網站中,作爲我們頁面佈局的一部分,我們有一個專門用於「本網站」的搜索框。當您從中搜索時,我們只需將POST的適當參數返回到我們的搜索中心,然後您就可以擁有它。