2016-04-27 10 views
0

Ich arbeite an einem Timer-Job, der alle SharePoint-Inhalte mit einem bestimmten Eigenschaftswert suchen muss. Wenn diese Eigenschaft ein Anführungszeichen enthält, schlägt die Anforderung fehl und ansonsten ohne dieses Merkmal, alles funktioniert wie erwartet. Ich habe versucht, das Zitat durch ein Backquote (`) zu ersetzen, aber das funktioniert nur in einer Anwendungskonsole.KQL Suche in Timer Job, Fehler

KQL Abfrage Beispiel:

ThematiqueEnrichment="Vie de l'administration" --> fail 

ThematiqueEnrichment="toto" --> works 

Jemand eine Idee zu diesem Problem hat? und warum die Backquote nicht funktioniert funktioniert nur in einem Timer Job

Dankten für Ihre Hilfe

KeywordQuery kq = new KeywordQuery(_site); 
kq.QueryText = "ContentTypeId:0x01010006DC43FAAA7D45E8AF6C31AE603C9BA5006CFA76F0311643E58860A89C066A5C6F*) AND ThematiqueEnrichment=\"" + currentSource.DisplayName + "\" "; 
kq.SelectProperties.Clear(); 
kq.SelectProperties.Add("PublishingPageContentOWSHTML"); 
kq.SelectProperties.Add("EMSTotemsDatePublicationOWSDATEFormat"); 
kq.SortList.Add("EMSTotemsDatePublicationOWSDATEFormat", SortDirection.Descending); 
ResultTableCollection resultTableCollection = new SearchExecutor().ExecuteQuery(kq); 
ResultTable resultTable = resultTableCollection.Filter("TableType", KnownTableTypes.RelevantResults).FirstOrDefault(); 
if (resultTable != null) 
{ 
    foreach (DataRow row in resultTable.Table.Rows) 
    { 
    // Manage items 
    } 
} 
+0

Bitte zeigen Sie uns etwas Code. – KittMedia

+0

Ich habe es in der Beschreibung hinzugefügt;) – koehrlen

Antwort

0

fand ich die Lösung. Ich habe einen SharePoint in Englisch mit einem französischen Sprachpaket. Also musste ich meine cultureInfo auf Französisch setzen, damit die Abfrage das Zitat verwalten konnte.

In meiner Konsole war die Culture in Französisch und in der Timer Job auf Englisch. Dies erklärt, warum das Verhalten anders war.

KeywordQuery kq = new KeywordQuery(_site); 
kq.QueryText = "ContentTypeId:0x01010006DC43FAAA7D45E8AF6C31AE603C9BA5006CFA76F0311643E58860A89C066A5C6F*) AND ThematiqueEnrichment=\"" + currentSource.DisplayName + "\" "; 
kq.SelectProperties.Clear(); 
kq.Culture = new CultureInfo("fr-FR");