使用SharePoint Server 2007搜索对象模型编程创建搜索查询
?
MOSS Visual How To
使用SharePoint Server 2007搜索對象模型編程創建搜索查詢
摘要:學習如何使用Microsoft Office SharePoint Server 2007 對象模型以編程的方式創建搜索查詢。
?
適用于:Microsoft Office SharePoint Server 2007
?
Patrick Tisseghem, U2U
July 2007
?
簡介
有兩種方式可以以編程的方式進行搜索查詢,一種是直接使用Microsoft Office SharePoint上下文中的對象模型,另一種是通過使用搜索的Web Service進行遠程調用。Office SharePoint Server 2007對象模型提供了一套新的類,你可以使用它們編程執行一個搜索查詢。
?
代碼
以下代碼需要添加Microsoft.Office.Server.Search.dll組件。示例代碼中使用的主要命名空間是Microsoft.Office.Server.Search.Query。
構建一個關鍵字查詢字符串
使用關鍵字語法構建一個查詢字符串是比較簡單的。在構建查詢字符串的時候,在想要從查詢結果中排除的關鍵字加上連字符(-)前綴;在向要包含在查詢結果中的關鍵字加上加號(+)前綴。你也可以添加屬性標準。下面的查詢當執行時返回所有包含”Business”關鍵字并且不是由”Brian”撰寫的文檔。
| Business -isDocument:0 -author:brianc |
構建一個全文檢索字符串
使用SQL語言擴展方式的查詢字符串允許更強大的搜索請求,支持全文檢索,控制返回的字段,而且在條件中可以適用搜索范圍和屬性。下面是前面查詢例子以全文查詢字符串的形式來表示。
| SELECT Title, Rank, Write, Url FROM SCOPE() ?? WHERE 'Scope'= 'Marketing Documents' AND ?? FREETEXT('business') AND isDocument 1 0 ?? AND author IS NOT 'Brian'} |
執行一個關鍵字查詢字符串
執行關鍵字語法的查詢字符串時,需要創建一個KeywordQuery類的對象實例,然后將它提供給服務器場中的Shared Services Provider(SSP)上下文。可以使用SPSite對象的一個實例來做這件事情。然后,然后給QueryText屬性的查詢字符串的執行和指派設置一個或多個屬性。Execute方法返回一個包含查詢結果的ResultTableCollection對象。使用ResultType枚舉,可以設置需要返回的結果類型,然后將它們綁定到基于Windows或者ASP.NET的控件上。
| SPSite site = new ?? SPSite("http://moss.litwareinc.com"); KeywordQuery kwq = new KeywordQuery(site); kwq.QueryText = textBoxKeyword.Text; kwq.ResultTypes = ?? ResultType.RelevantResults; ResultTableCollection results = ?? kwq.Execute(); ResultTable resultTable = ?? results[ResultType.RelevantResults]; |
執行一個全文檢索字符串
使用全文檢索方式的查詢字符串,它的執行過程與前面的代碼一樣。但是,現在我們使用的是FullTextSqlQuery類。下面的代碼示例顯示了另一種提供給SSP上下文構造器的方法。這次,需要添加Microsoft.Office.Server.ServerContext引用來實現這個功能。
| ServerContext context = ServerContext.GetContext("SharedServices1"); FullTextSqlQuery qry = new ?? FullTextSqlQuery(context); qry.ResultTypes = ?? ResultType.RelevantResults; qry.EnableStemming = true; qry.TrimDuplicates = true; qry.QueryText = query; ResultTableCollection results = ?? qry.Execute(); ResultTable resultTable = ?? results[ResultType.RelevantResults]; |
?
閱讀
Microsoft Office SharePoint Portal Server 2003包含一個名為QueryProvider的類,可以編程執行搜索查詢。這個類仍然可以使用,但是現在是否決的。Office SharePoint Server 2007提供了兩個新的類;均繼承自Query基類。
l? KeywordQuery構建一個關鍵字語法來執行查詢搜索。
l? FullTextSqlQuery構建全文SQL語法來執行查詢搜所。
兩個的執行過程一樣。
?
原文地址:http://msdn2.microsoft.com/en-us/library/bb626127.aspx
本文旨在幫助大家學習,幫助英文不好的MOSS愛好者,分享我的學習經驗。如有錯誤請大家指出,共同進步:)
轉載于:https://www.cnblogs.com/Bear-Study-Hard/archive/2008/03/16/1108455.html
總結
以上是生活随笔為你收集整理的使用SharePoint Server 2007搜索对象模型编程创建搜索查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 激励员工的首席执行官以及他们的秘诀
- 下一篇: Asp组件中级入门与精通系列之三