novembre
2011
Lors de l’utilisation de la recherche et plus particulièrement d’une requête FullText, j’ai été confronté à une erreur pas vraiment explicite
Voici la requête que j’ai exécutée :
SearchServiceApplicationProxy proxy = (SearchServiceApplicationProxy)SearchServiceApplicationProxy.GetProxy(SPServiceContext.GetContext(site)); FullTextSqlQuery myQuery = new FullTextSqlQuery(proxy); myQuery.ResultsProvider = SearchProvider.Default; myQuery.ResultTypes = ResultType.RelevantResults; myQuery.QueryText = "SELECT Title FROM SCOPE() where \"scope\"='All Sites' AND MyManagedProperty LIKE ‘%test%’”;
Voici maintenant le libellé de l’erreur en question au moment du myQuery.Execute() :
HRESULT E_FAIL has been returned from a call to a COM component
Après des recherches sur Google je suis tombé sur ce post m’indiquant la marche à suivre.
http://msdn.microsoft.com/fr-fr/library/microsoft.sharepoint.search.query.query.hint(v=office.12).aspx
Il suffit de spécifier la propriété Hint avec la valeur QueryHint.OptimizeWithPropertyStore.
myQuery.Hint = QueryHint.OptimizeWithPropertyStore;
Sur la msdn, il n’y a aucune information permettant de savoir réellement quel est l’impact de cette propriété. Cependant, il n’y a plus d’erreur et les résultats que me retourne la recherche sont ceux attendus ;)