2009-03-13 9 views

Antwort

1

Ja, Sie können erweiterte Suchen mit der Klasse FullTextSqlQuery durchführen, wie im folgenden Codebeispiel gezeigt. Siehe auch Best Practices: Writing SQL Syntax Queries for Relevant Results in Enterprise Search.

using (SPSite site = new SPSite("http://server")) // Site Collection URL 
using (FullTextSqlQuery query = new FullTextSqlQuery(site)) 
{ 
    query.ResultTypes = ResultType.RelevantResults; 
    query.EnableStemming = true; 
    query.TrimDuplicates = true; 
    query.Culture = new CultureInfo(1033); // Use en-US stemmer and word-breaker 
    query.RowLimit = 40; 
    query.StartRow = 0; 
    query.KeywordInclusion = KeywordInclusion.Allkeywords; // Implicit AND search 
    query.HighlightedSentenceCount = 3; 
    query.SiteContext = new Uri("http://server"); // Site Collection URL 
    query.QueryText = "SELECT WorkId, Title, Path, HitHighlightedSummary, HitHighlightedProperties, CollapsingStatus, Description, Rank, Size" + 
        " FROM SCOPE()" + 
        " WHERE \"scope\" = 'A Scope'" + 
        " AND FREETEXT(defaultproperties, 'keyword1 keyword2')" + 
        " AND Color = 'Black'" + // Color is a managed property 
        " ORDER BY Rank DESC";    

    ResultTableCollection results = query.Execute(); 
    ResultTable relevantResults = results[ResultType.RelevantResults]; 

    // TODO: Process results 
}; 
+0

, die gut funktioniert ... aber ich brauche Ergebnisse für verwaltete Eigenschaft zu erhalten, die als „LOBSystemName.EntityName.ColumnName“ mit Standardnamen zugeordnet sind Eigentum von Geschäftsdaten gekrochen, die Fehler zeigt ... Kann mir jemand helfen – kailash

+0

Könnten Sie genauer auf den Fehler hinweisen, den Sie bekommen? In dem obigen Code können Sie einfach die Namen Ihrer verwalteten Eigenschaften der durch Kommas getrennten Liste von Eigenschaften nach SELECT hinzufügen. –