在 SharePoint 2013 的搜尋中運用使用者內容 (又稱為區隔)

英文原文已於 2012 年 12 月 3 日星期一發佈

使用一段內容表示目前搜尋的使用者,就如同我們一開始在 FAST Search for SharePoint 2010 中所介紹的一樣。如果您有興趣了解其如何反覆運作,可觀看這篇文章:https://blogs.technet.com/b/speschka/archive/2009/12/09/using-custom-properties-to-create-a-fast-search-for-sharepoint-2010-user-context.aspx。在 SharePoint 2013 中,我們沒有完全相同的功能,但我們必須進行置換,稱為「使用者區隔」。現在,與其由我來解釋使用者區隔是什麼以及其運作方式,搜尋團隊成員已發表了一篇很出色的說明:https://blogs.msdn.com/b/adaptive_experiences_in_sharepoint_2013/archive/2012/11/14/set-up-user-segmentation-to-drive-adaptive-experiences-in-a-product-catalog-in-sharepoint-2013.aspx。我非常鼓勵大家閱讀這篇部落格文章,作者很詳盡地介紹使用者區隔,並列舉使用範例。

我並不是要搶走他的鋒頭或把功勞據為己有。而我所做的事情是這樣:當您在閱讀那篇文章時,您會看到文章提及,必須撰寫自訂網頁組件來了解任何應該套用至目前查詢的使用者區隔,然後組件會自行新增使用者區隔。在部落格中,文章內容描述了根據瀏覽器屬性新增使用者區隔。而我所做的決定,就是撰寫有關根據目前使用者的部門新增使用者區隔的網頁組件。針對那些還不清楚的使用者,當您在 SharePoint 2013 從 Active Directory 匯入設定檔時,我們會將所有特定「部門」(Department) 值自動匯入特殊字詞庫。這使得根據目前使用者的部門進行自訂成為絕佳選擇。

您可能有一個疑問,「如果我要根據使用者的部門來呈現內容,為何不只使用對象就好?」那是一個關乎公平的問題,而區別在這裡。透過對象定位,要顯示網頁組件與否,只要利用簡單的開關即可。透過使用者區隔,我可取出設定檔或其他來源中的資訊,並可自訂要顯示的內容。由於使用查詢規則,我可以對使用者執行一項或多項其他的查詢、可以新增升級的結果,甚至我可以變更查詢排名,力如,假若我要根據您工作的部門針對某些內容,讓其在搜尋結果中顯示為較高的排名的話。這些正是您在 SharePoint 2013 中搜尋時可使用的酷炫功能。

因此,為了協助您使用此項功能,我剛剛針對將目前使用者部門新增至使用者區隔之網頁組件,附加了我的完整 Visual Studio 專案:已編譯的網頁組件、解決方案及原始程式碼。此後,您可依其現狀加以使用,或用作精簡或撰寫您自己網頁組件的基礎,以管理使用者區隔。當您閱讀上述連結的文章時,請留意我所強調的幾個有關使用者區隔的使用要點:

  • 當您建立查詢規則的時候,會預設為查詢發佈網站的目錄。若您使用這個選項,則不會得到任何搜尋結果。而是要選擇查詢「所有來源」的選項。文章中查詢規則設定的圖片會顯示此訊息但並未將其呼叫出來,因為您必須變更預設行為才能執行此作業,而我正要將其呼叫出來。
  • 在文章中討論了使用不同的網頁組件顯示您在運用使用者區隔時所強調之任何內容的結果。在此情況下 (文章所提及),我的網頁組件繼承自 ContentBySearchWebPart,因此您可使用控制項設定使用者區隔以及顯示所強調的內容。與文章說明略為不同的僅有一件事情,那就是,當您將網頁組件新增至頁面時,您將會在網頁組件的 [設定] 屬性中使用不同的值。在此 [設定] 中,只要將 [查詢結果提供者] 屬性設定為 [此網頁組件]。

就是如此,您現在已準備就緒。希望您會從搜尋找到有趣的使用者區隔案例。當我在撰寫此特殊案例時,我是針對「行政」部門員工的部分特別訓練。因此,當他們點擊此頁面,而頁面中我的網頁組件正在使用中時,他們會看見此特殊內部交易訓練 (其全體將必須進行) 的橫幅和連結:

這是翻譯後的部落格文章。英文原文請參閱 Using User Context (AKA Segmentation) in Search with SharePoint 2013