2014-09-18 1 views
2

Ce poste donne à penser que nous ne devrions pas utiliser le search.ashx pour faire une recherche dans Sitecore 7: Sitecore 7 Search - Search.ashxSitecore 7 Recherche - Recherche des meilleures pratiques ne pas utiliser search.ashx

Cependant, la réponse est correcte puisque vous ne peut pas utiliser l'API Web de l'élément pour rechercher, il offre un accès CRUD mais pas la recherche de la boîte:

How to Access Sitecore Lucene Search through the Item Web API?

Alors, il nous reste a) rouler notre propre emballage de recherche autour de la recherche de Sitecore .net api de et se connecter dans les pipelines Item Web API ou b) se lier à l'interne Si tecore service de recherche et espérons que cela ne change pas (du moins pas trop souvent). Personnellement, je pense que l'option b est plus fragile mais elle me permet d'aller plus vite. L'option a est plus impliquée mais me mettrait plus en contrôle de l'interface de recherche que je consomme. Cependant, si nous reculons, il semble que Sitecore devrait avoir une meilleure pratique ou recommandation claire sur la conduite de recherches dans Sitecore 7 via un service web de quelque sorte. Si vous connaissez la recommandation ou avez une option c répondez s'il vous plaît. Merci!

Répondre

0

Je pense que le mieux pour aller avec l'option a)

Il vous suffit de faire ce qui suit:

  1. Mettre en oeuvre votre processeur. Vous devez analyser luceneQuery et ensuite, vous pouvez utiliser PredicateBuilder ou LinqHelper pour créer votre requête.

Vous pouvez trouver plus d'informations sur le PredicateBuilder in this blog post

  1. A l'intérieur du pipeline itemWebApiRequest, ajoutez un nouveau paramètre à <processor type="Sitecore.ItemWebApi.Pipelines.Request.CheckParameters, Sitecore.ItemWebApi" >. Quelque chose comme ça: <name desc="item id15">luceneQuery</name>.

  2. Crochet processeur après <processor type="Sitecore.ItemWebApi.Pipelines.Request.ResolveItems, Sitecore.ItemWebApi" />

Voilà. J'espère que ça aide.

Questions connexes