2016-04-27 2 views
0

私は指定されたプロパティ値ですべてのSharePointコンテンツを検索するタイマージョブに取り組んでいます。このプロパティに見積もりが含まれている場合、要求は失敗し、そうでなければこのcaracterがなければ、何も期待通りに機能しません。引用符をバッククォート( `)で置き換えようとしましたが、これはアプリケーションコンソールでのみ動作します。タイマージョブのKQLで検索、引用エラー

KQLクエリ例:

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

ThematiqueEnrichment="toto" --> works 

誰かがこの問題についての考えを持っていますか?バッククォートは

感謝のは、あなたの助け

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

いくつかのコードを表示してください。 – KittMedia

+0

私は説明にそれを加えました;) – koehrlen

答えて

0

用タイマジョブでのみ動作しない理由と私は解決策を見つけました。私はフランス語の言語パックを使ってSharePointを英語で使っています。 フランス語でcultureInfoを設定して、クエリで見積もりを管理できるようにする必要がありました。

私のコンソールでは、カルチャーはフランス語でタイマージョブは英語でした。これは、なぜその品揃えが異なるのかを説明します。

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