2010-12-02 58 views
0

我創建了一個xml查詢,我發送給正在返回一些結果的我的Sharepoint搜索服務。然後,我將SQL查詢文本從中取出,並開始將其與對象模型一起使用,現在它不起作用。基於下面的代碼,它看起來像我做錯了什麼?Sharepoint對象模型vs WebServices

查詢XML(返回結果):

<QueryPacket xmlns="urn:Microsoft.Search.Query" Revision="1000"> 
            <Query domain="QDomain"> 
            <SupportedFormats><Format>urn:Microsoft.Search.Response.Document.Document</Format></SupportedFormats> 
            <Context> 
             <QueryText language="en-US" type="MSSQLFT"><![CDATA[ SELECT Title, Rank, owsPublished1,owsSocialx0020Networkx0020Update, Description, Write, Path FROM scope() ORDER BY "Rank" DESC ]]></QueryText> 
            </Context> 
            <Range><StartAt>1</StartAt><Count>20</Count></Range> 
            <EnableStemming>false</EnableStemming> 
            <TrimDuplicates>true</TrimDuplicates> 
            <IgnoreAllNoiseQuery>true</IgnoreAllNoiseQuery> 
            <ImplicitAndBehavior>true</ImplicitAndBehavior>  <IncludeRelevanceResults>true</IncludeRelevanceResults>        <IncludeSpecialTermResults>true</IncludeSpecialTermResults>       
<IncludeHighConfidenceResults>true</IncludeHighConfidenceResults> 
            </Query></QueryPacket> 

對象模型代碼(不):

 SPSite site = new SPSite("http://sp-dev/"); 
     ServerContext sc = ServerContext.GetContext(site); 
     FullTextSqlQuery ftq = new FullTextSqlQuery(sc); 
     string querySQL = @"SELECT Title, Rank, owsPublished1,owsSocialx0020Networkx0020Update, Description, Write, Path FROM scope() ORDER BY ""Rank"" DESC "; 

     ftq.QueryText = querySQL;; 
     ResultTableCollection results = ftq.Execute(); 

回答

2

至少需要補充:

ftq.EnableStemming = false; 
ftq.TrimDuplicates = true; 
ftq.IgnoreAllNoiseQuery = true; 
ftq.KeywordInclusion = KeywordInclusion.AllKeywords; 

在至少要對這兩種方法進行公正的比較。然後,您還可以嘗試:

ftq.AuthenticationType = QueryAuthenticationType.PluggableAuthenticatedQuery;