2017-10-11 21 views
0

Le service de recherche SharePoint fonctionne sur le contenu des documents et il Metadata (propriétés), j'ai besoin de récupérer le nom du champ et son contenu (SPField) qui correspondent à la recherche sur elle.SharePoint 2013 KeywordQuery Search SPField

Quel champ dois-je ajouter à l'objet SelectProperties? ou où je peux trouver ces informations.

KeywordQuery keywordQuery = new KeywordQuery(SPContext.Current.Site); 

keywordQuery.QueryText = queryText; 
keywordQuery.ResultsProvider = SearchProvider.Default; 
var selecProperties = keywordQuery.SelectProperties; 
selecProperties.Add("UniqueId"); 
selecProperties.Add("FileLeafRef"); 
selecProperties.Add("ListId"); 
selecProperties.Add("WebId"); 
selecProperties.Add("Created"); 
selecProperties.Add("CheckoutUserOWSUSER"); 

SearchExecutor searchExecutor = new SearchExecutor(); 
ResultTableCollection resultTableCollection = searchExecutor.ExecuteQuery(keywordQuery); 
ResultTable resultTable = resultTableCollection.Filter("TableType", KnownTableTypes.RelevantResults).FirstOrDefault(); 
DataTable dataTable = resultTable.Table; 

Répondre

0

Je trouve la solution dans l'objet KeywordQuery dans la propriété HitHighlightedProperties tout besoin est d'ajouter des propriétés analysées (propriétés gérées) à SelectProperties et HitHighlightedProperties, puis dans le domaine, vous trouverez xml contient des détails sur le mot-clé trouvé dans tous les champs disponibles.