SharePoint 2010 Search 與 FAST Search for SharePoint 專用的免費開發人員搜尋工具
SharePoint 2010 Search 與 FAST Search for SharePoint 專用的免費開發人員搜尋工具
幾個月以來,我斷斷續續地研究一個開發人員工具,以協助在 SharePoint 2010 中使用查詢引擎。它已經完成得差不多了,可能已經能夠讓一些人開始使用。我一直在思考著將它放到 CodePlex 上,讓它更像是社群專案,那麼其他人就可以貢獻意見並增強它,但至今還沒行動。
原本寫這個工具是做為 SharePoint 2007 專用的舊 MOSS 查詢工具 (這是我原來的 SharePoint 2003 專用 SharePoint 查詢工具的升級版;是的,我確實涉獵了那麼久) 的升級版。不過,我從舊的 MOSS 查詢工具中加入了不少增強功能,因此確實不太一樣。我加入一個整體畫面,以方便從此應用程式管理部分搜尋服務。我厭倦了不停往返我的查詢工具與瀏覽器,嘗試在搜尋服務中變更項目,然後查看他們的新值等。因此,為了解決這個問題,當應用程式啟動時,第一個畫面就會提供你一堆有關搜尋服務的資訊。實際按一下按鈕,就能取得搜尋服務的清單,因為你現在可擁有一個以上的搜尋服務,而它會擷取全部,包括您從其他伺服器陣列使用的搜尋服務 Proxy。當你取得搜尋服務的詳細資訊後,你可以查看所有內容來源、取得編目狀態或取得該內容來源的起始位址清單。你可以從工具的右邊開始完整或累加編目,你也可以新增和/或移除內容來源額外的起始位址。
下圖是此工具主畫面的範例;我用了點可以說是「縮時攝影」的技巧,這樣你才能看到不同的快顯功能表:
在畫面上方可以看到關於搜尋應用程式的一些基本資訊,你也可以從此工具修改這些資訊。最重要的好處大概就是查詢記錄和啟用查詢建議。有一個 [關鍵字及首選] (keywords and best bets) 區段,因此你可以輕鬆尋找你在不同的網站集合中定義的首選,並瞭解針對你執行的不同查詢可預期的結果。如果想知道是否有任何項目被排除或編目的方式不同,[編目規則] (Crawl Rules) 區段可讓你知道已為搜尋應用程式定義的所有編目規則。在 [Managed 屬性] (Managed Properties) 區段中,你可以查看已在搜尋應用程式中定義的所有 Managed 屬性。這裡的檢視只顯示每個 Managed 屬性的一些屬性 (你也可以在此畫面上變更 [用於範圍] (Use In Scopes)),但是,如果你按兩下某個 Managed 屬性,則會顯示含有該 Managed 屬性「所有」屬性的個別對話方塊。你可以接著從該對話方塊變更 Managed 屬性的那些屬性。該對話方塊看起來和下圖類似:
[範圍] (Scopes) 區段顯示已定義的不同範圍。你也可在此查看其是否會顯示於管理 UI,或是替代的搜尋結果頁面等資訊。最後,畫面下方的區段會顯示任何「快速使用者內容」屬性。這些是可用來為 FAST Search for SharePoint 建立使用者內容的屬性,如下列部落格文章所述:https://blogs.technet.com/b/speschka/archive/2009/12/09/using-custom-properties-to-create-a-fast-search-for-sharepoint-2010-user-context.aspx (可能為英文網頁)。
當你按一下 [查詢] (Queries) 索引標籤時,會跳到和過去在 MOSS 查詢工具中所用極為類似的畫面,那就是你可以實際建立查詢以針對 SharePoint 或 FAST 執行並取得部分搜尋結果的位置。該畫面看起來和下圖類似:
同樣地,你會看到所有 Managed 屬性的清單。你可以核取任一 Managed 屬性旁的 [包含] (Include) 方塊,以在查詢結果中傳回。你可以在 [準則] (Criteria) 欄中輸入任何 Managed 屬性的查詢準則。也可以輸入文字來尋找整個文件,或在 [查詢] (Query) 編輯欄位中輸入項目。和以前一樣,你可以按一下 [建立 SQL] (Make SQL) 按鈕,就會建立針對 SharePoint 查詢 Web 服務使用的 SQL 以執行查詢。當你按 [執行查訊] (Run Query) 按鈕時,將會執行查詢,並顯示含有結果的新對話方塊。下圖是部分搜尋結果的範例:
在查詢結果中,你可以獲得重要的資訊。在畫面上方的是傳送到查詢 Web 服務以執行查詢的 Xml。因此,如果你是使用物件模型來查詢,便可直接從 [查詢] (Queries) 索引標籤複製 SQL;如果你是使用搜尋 Web 服務,可以直接從此搜尋結果頁面複製 Xml。你也會看到查詢傳回的所有相符項目,讓你清楚查詢是否有用。在畫面下方,你會看到傳回的一些額外資料 (假設你要求以資料集的形式 (而非 Xml) 查看結果)。左邊的 [首選] (Best Bets) 方格會顯示來自 FAST 的 [視覺化首選] (Visual Best Bets)。中間的 [特殊字詞] (Special Terms) 方格顯示在網站集合中為 SharePoint 搜尋新增的首選。右邊的 [精簡搜尋] (Refinements) 顯示查詢中傳回的任何精簡搜尋;這只有在查詢 FAST,並於 [查詢] (Queries) 索引標籤中選取 [包含精簡搜尋] 核取方塊時才有用。
新增 FQL (FAST Query Language,FAST 查詢語言) 支援事實上是 MOSS 查詢工具最大的改良。FAST 不支援 SharePoint Search SQL 語法,因此你只能使用 FAST 搜尋應用程式執行關鍵字或 FQL 查詢。關鍵字查詢應該很簡單,但 FQL 對大部分的 SharePoint 使用者而言是全新的事物。為協助向前移動學習曲線,[查詢] (Queries) 索引標籤包含 [選取 FQL...] (Select FQL...) 的下拉式選項。該下拉式選項包含數個不同的範例 FQL 查詢,讓你可以輕鬆寫下不同的 FQL 子句與相符的選項,然後執行它們以查看在 FQL 中可以做哪些不同的事。我也在它上面加上一個可連至 MSDN 上的 FQL 語法說明的連結。所以,如果你正在看下拉式選項中的不同 FQL 選項,卻不知道它們的作用,只要按一下連結開啟 FQL 說明,就可以進一步閱讀。下圖是顯示一併傳回一些精簡搜尋的簡單 FQL 搜尋結果:
所以,簡單地說,就是這樣了,這至少應該足夠讓你去使用和思考如何使用它。無論是否管用,我始終認為此工具和 MOSS 查詢工具等相當實用。我在開發自己的自訂搜尋時是如此,當我嘗試疑難排解伺服器陣列中的搜尋問題時更是如此。再沒有什麼比得上可以跳出這個小工具來執行各種自訂查詢,以協助縮小我認為可能有問題的範圍。我在這篇文章中加入一個 ZIP 附件,其中包含你使用時需要的檔案。如果你想建議什麼需要的功能,歡迎留下你的意見。正如我所說的,如果將此移至 CodePlex 以讓其他人一起研究是有好處的 (因為老實說我現在有點厭倦研究了),我也可能會那樣做。希望你喜歡。
2010 年 8 月 20 日更新:新增建立和管理對應屬性的支援。當初太糊塗才會遺漏,因為那是開發自訂搜尋時最常做的工作之一。也新增了更新內容來源編目狀態的支援。所以現在當你開始編目時,便可看到進度狀態。
2010 年 8 月 22 日更新:新增將 Managed 屬性的所有屬性匯出到 Xml 檔案的支援,所以你可以離線檢視。新增從相同格式的 Xml 檔案匯入的支援,所以你可以將某個 Managed 屬性的設定複製到另一個 Managed 屬性。
這是翻譯後的部落格文章。英文原文請參閱 Free Developer Search Tool for SharePoint 2010 Search and FAST Search for SharePoint