爲SharePoint搜索創建自定義優化參數

當我們使用SharePoint 2010所提供的搜索功能時,在搜索結果的左側,有一個搜索結果優化區域。通過這個區域,用戶可以進一步的精簡搜索結果。比如,僅僅顯示類型爲Word文件的搜索結果,或者僅僅顯示作者爲“kaneboy”的搜索結果。

image

這個優化區域內置了最常見的幾個精簡項目,包括類型(搜索結果是何種類型)、來源(搜索結果來自於哪個網站)、作者、修改日期等。如果在文檔管理系統中使用了SharePoint 2010新的託管元數據服務中的術語來定義了企業關鍵字,那麼這些關鍵字也會自動出現在優化區域中。

除了內置的這些精簡項目,管理員可以添加更多的額外精簡項目。不過如果希望某個屬性能作爲一個精簡項目,管理員需要首先將它定義爲搜索服務中的託管屬性。

比如,在文檔系統中,我們定義了一個專門的字段,“技術等級”,來描述所有技術文檔的難度。這個字段的內部名稱是“TechLevel”。

image

首先,在SharePoint 2010搜索管理中對所有內容進行一次完全爬網。如果爬網引擎發現了爬網內容有一個額外的字段,它會將這個字段作爲已爬網屬性存儲到搜索數據庫中。

接下來,我們需要將這個已爬網屬性定義爲託管屬性。從SharePoint 2010管理中心裏面,通過“管理服務應用程序 - Search Service Application - 元數據屬性”,就打開了元數據屬性管理界面。點擊“新建託管屬性”。

爲新託管屬性取名爲“TechLevel”,然後,我們需要將它與已經存在的那個已爬網屬性關聯起來。點擊“添加映射”按鈕,然後搜索“TechLevel”(因爲這是那個字段的內部名稱),找到這個已爬網屬性。將它與新託管屬性建立起映射。

image

最後這個新託管屬性的定義如下。

image

定義好了託管屬性之後,對內容源進行第二次完全爬網!這是完全必要、不可或缺的,否則,內容的這個託管屬性中將不會包含任何有效的值。

完成第二次爬網之後,打開搜索結果頁面,編輯此頁面,找到頁面上的“精簡面板”Web部件,編輯它的屬性。這個Web部件的作用就是顯示頁面上的優化區域。

image

展開這個Web部件屬性中的“優化”區域,將“篩選器類別定義”中的內容全部複製出來。把“使用默認配置”選項清除,否則我們做的任何修改都不會生效。

image

隨便找一個XML文本編輯器,按照下面的格式,創建一段XML文本。在下面的示例XML中,“MappedProperty”屬性的值需要設置爲託管屬性的名稱(TechLevel),“Title”屬性決定了這個優化選項顯示在頁面左側的擡頭。

<Category Title="技術等級"
Description="文檔的技術等級"
Type="Microsoft.Office.Server.Search.WebControls.ManagedPropertyFilterGenerator"
MetadataThreshold="1"
NumberOfFiltersToDisplay="4"
MaxNumberOfFilters="20"
SortBy="Frequency"
SortDirection="Descending"
SortByForMoreFilters="Name"
SortDirectionForMoreFilters="Ascending"
ShowMoreLink="True"
MappedProperty="TechLevel"
MoreLinkText="顯示更多"
LessLinkText="顯示更少"/>

把上面的XML文本,插入到從Web部件屬性面板“篩選器類別定義”中複製出來的XML文本里面,需要插入到“<FilterCategories>”這個節點裏面。

image

然後將新的XML文本內容複製回Web部件屬性面板“篩選器類別定義”文本框,確定即可。保存並刷新頁面,就能看到大功告成了。

image

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章