Office SharePoint Server 中搜尋的最佳作法
本文是 Microsoft Office SharePoint Server 2007 最佳作法系列文章中的一篇。本文說明「企業版搜尋」的最佳作法。除非另有說明,本文適用於 Office SharePoint Server 2007 及 Microsoft Search Server 2008。若想閱讀本系列中的其他文章,請參閱<最佳作法>。如需有關 Office SharePoint Server 2007 最佳作法的其他資訊與資源,請參閱最佳作法資源中心 (英文) (https://go.microsoft.com/fwlink/?linkid=125981&clcid=0x404)。
1. 規劃您的部署
規劃尋找能力。搜尋技術必須能夠讓一般使用者花最少的心力即可以找到查詢的內容,才算實用。如需深入了解尋找能力,請參閱 Ben Curry 與 Bill English (Microsoft Press, Redmond, WA, 2008) 所著 Microsoft Office SharePoint Server 2007 Best Practices (英文)的<第 15 章:實作最佳搜尋及尋找能力拓撲>。
使用 Managed 屬性。這個功能可讓搜尋管理員建立相關屬性的一對多對應。這個程序可以減少使用者在執行進階查詢時所使用的屬性名稱數目。例如,搜尋管理員可以將名為 "author" 的屬性對應至 "writer" 和 "author2" 屬性,如此在查詢中加入 "author" 屬性的使用者,可同時取得 "writer" 和 "author2" 的搜尋結果。如需 Managed 屬性的詳細資訊,請參閱<規劃使用者搜尋體驗 (Office SharePoint Server)>與<Plan the end-user search experience (Search Server 2008)>。
建立服務層級協定。請確定服務層級協定 (SLA) 在部署之前已被同意。
2. 從一個良好設定的基礎結構開始
部署兩部或更多部查詢伺服器以提升可用性。多部查詢伺服器可為使用者查詢提供備援。若查詢伺服器失敗,查詢將會自動導向至健全的查詢伺服器。如需詳細資訊,請參閱<規劃備援 (Office SharePoint Server)>以及 Microsoft 企業版搜尋部落格的部落格文章 SearchBeta 硬體設定 (英文) (https://go.microsoft.com/fwlink/?linkid=126330&clcid=0x404)。
使用個別的電腦來執行內容資料庫和共用服務提供者 (SSP) 的 SQL Server。如需資料庫建議的詳細資訊,請參閱<實體儲存裝置建議 (Office SharePoint Server)>。
使用「檔案群組」在搜尋資料庫中分隔查詢和編目的表格。
在內部伺服器陣列連線使用 Gigabit 網路。如需詳細資訊,請參閱<其他效能和容量規劃因素 (Office SharePoint Server)>。
3. 使用 Windows 安全性群組來管理存取
建議您將使用者新增至 Windows 安全性群組而不是將使用者新增至 SharePoint 群組,其理由如下:
因為變更 Windows 安全性群組不會直接影響 SharePoint 網站的存取控制項目 (ACE),所以當那些 Windows 安全性群組中的使用者帳戶改變時,您不必重新進行編目。
編製索引程序期間,系統將儲存已經新增至 SharePoint 群組之每一位使用者的 ACE,而不是 SharePoint 群組本身的 ACE。這個程序在「參數不正確」錯誤導致編目失敗後支援約 1000 使用者 (每個存取控制清單 (ACL))。
4. 重組搜尋資料庫
搜尋資料庫含有已編目內容的中繼資料和 ACL。經過一系列編目後,搜尋資料庫會變成片段化。若要改善編目與查詢的效能,請定期重組搜尋資料庫。如需詳細資訊,請參閱<Office SharePoint Server 2007 的資料庫維護 (白皮書)>。
重要
如果您對執行 SQL Server 的電腦進行鏡像,請在重組搜尋資料庫之前關閉鏡像,並在重組完成後重新開啟。
5. 系統永遠保持為最新
在測試環境完成更新測試後,請儘快安裝 Office SharePoint Server 2007, Search Server 2008 和 SQL Server 的最新軟體更新。如需如何部署軟體更新的一般指導,請參閱<部署 Office SharePoint Server 2007 的軟體更新>。
6. 監視 SQL Server 延遲
搜尋在 SQL Server 是 I/O 密集的作業,在暫存資料庫和搜尋資料庫則是對 I/O 延遲敏感。搜尋和內容裝載兩者都大量使用暫存資料庫。建議您將搜尋資料庫、SSP 資料庫、暫存資料庫、內容資料庫以及其對應的記錄檔存放在個別的磁針上。如此一來,您便可以依據各自特定需求來最佳化每一個檔案。對於大型的伺服器陣列,將內容資料庫分別放置在執行 SQL Server 的個別電腦上是不錯的作法。這樣做可提供搜尋資料庫和 SSP 資料庫不同的暫存資料庫,並提供 SQL Server 執行個體而非內容資料庫。為了達到最佳搜尋效能,建議您維持下列延遲:
Temp 資料庫 - 10 毫秒 (ms) 或更少
搜尋資料庫 - 10 毫秒或更少
資料庫記錄檔 - 20 毫秒或更少
遵循 Microsoft 企業版搜尋部落格的部落格文章SQL 監視與 I/O (英文) (https://go.microsoft.com/fwlink/?linkid=123950&clcid=0x404) 中的其他建議。如需如何疑難排解 SQL Server 上效能問題的資訊,請參閱下列 SQL Server 技術文章中<I/O 瓶頸>一節:SQL Server 2005 效能問題疑難排解 (https://go.microsoft.com/fwlink/?linkid=123952&clcid=0x404)。
7. 監視以防止搜尋匱乏
當編目程式無法配置另一個執行緒來擷取編目佇列中的下一個文件時,便會發生搜尋「匱乏」**。下列情況可能造成匱乏:
執行 SQL Server 的電腦上發生資源 (I/O) 爭用。
太多主機同時進行編目。
未快速放棄執行緒的「等待內容」**主機。「等待內容」主機包括下列:
低速主機。進行編目的主機沒有能力服務編目程式傳送來的所有要求。
需要額外工作以進行累加編目的主機。基本 HTTP 編目是這個種類的一部分,因為每一個文件對伺服器需要一個來回行程,但在下載文件之前會先檢查修改日期。
含有大量屬性的主機和內容。您將在下列內容儲存類型常看到這種情況:商務資料目錄、人員匯入以及人員編目。
執行備份時編目暫停。
如需詳細資訊,請參閱下列 Microsoft 企業版搜尋部落格上的部落格文章:建立編目排程與中止 - 如何偵測及減至最低 (英文) (https://go.microsoft.com/fwlink/?linkid=123794&clcid=0x404)。
8. 監視您的系統來了解查詢瓶頸
9. 驗證每一個已編目網站的搜尋可見性設定
搜尋引擎之網站與頁面最佳化的標準最佳作法,對 SharePoint 部署中的網站內容管理 (WCM) 網站也同樣的重要。針對搜尋引擎最佳化之網站或頁面,會出現較佳的搜尋結果,有助於提高網站的流量。如需詳細資訊,請參閱如何最佳化 SharePoint Server 2007 內容管理網站以利搜尋引擎 (英文) (https://go.microsoft.com/fwlink/?linkid=123956&clcid=0x404)。
10. 在查詢伺服器或備份伺服器陣列初始化前手動暫停編目
在備份搜尋所使用的 SSP 或初始化查詢伺服器之前,建議您暫停所有編目。備份完成後,您必須手動繼續暫停的編目。如需詳細資訊,請參閱<暫停與繼續編目 (Office SharePoint Server 2007)>。
11. 在設定變更後進行編目和查詢子系統測試
建議您在完成設定變更後,進行伺服器陣列的編目與查詢功能測試。有一個簡單方法是建立專用於這個目的的暫時內容來源。建議您進行 10 個項目的編目,例如,檔案共用上的 .txt 檔,然後對其執行搜尋查詢,來進行測試。請確定這些項目目前不在索引中。如果其中含有查詢時會顯示在搜尋結果頁面前端的獨特文字,則會非常有幫助。測試完成後,建議您刪除針對這個測試建立的內容,因為這樣做可以從索引移除您已編目的項目。因此,當您想執行這個測試並且不要在您完成測試之後出現在搜尋結果中時,可以重新進行編目。如需內容編目的相關資訊,請參閱<取得已編目的內容 (Office SharePoint Server 2007)>或< How to crawl content (Search Server 2008)>。
12. 檢閱已編目物件的防毒原則
當您在 Windows SharePoint Services 3.0、Office SharePoint Server 2007 或 中使用某些檔案層級的防毒軟體程式時,應該將某些資料夾排除在掃描之外。若不排除這些資料夾,可能會遇到許多非預期的問題。如需詳細資訊,請參閱 Microsoft 知識庫中的下列文章:952167:在 Windows SharePoint Services 3.0 或 SharePoint Server 2007 中使用檔案層級的防毒程式時,必須排除在防毒掃描之外的資料夾 (https://go.microsoft.com/fwlink/?linkid=123963&clcid=0x404) (機器翻譯)。
13. 如果您有自訂查詢,並從已編目屬性使用者介面將適當屬性標示為「可制定範圍」(scope-able),來停止執行高成本的 SQL 查詢。
感謝
Office SharePoint Server 2007 內容發佈小組特此感謝下列人士對本文的協助:
Luca Bandinelli,Microsoft SharePoint Customer Advisory Team
Dan Blood,Microsoft Search Server
Sid Shah,Microsoft Search Server
Richard Riley,Microsoft SharePoint Marketing
Mitch Prince,Microsoft Consulting Services
Larry Kuhn,Microsoft Consulting Services