2014-09-18 67 views
2

这篇文章表明,我们不应该用search.ashx做在Sitecore的7搜索: Sitecore 7 Search - Search.ashxSitecore的7搜索 - 最佳实践的搜索不使用search.ashx

然而,答案是不,因为你正确不能使用项目的Web API进行搜索,它提供了CRUD访问而不是搜索开箱:

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

因此,我们只剩下一个)滚动我们周围的.NET Sitecore的搜索API自己的搜索套并钩入Item Web API管道或b)绑定到内部Si tecore搜索服务,并希望它不会改变(至少不会太频繁)。就我个人而言,我认为选项b更脆弱但让我更快。选项a更多地参与,但会让我更加控制我正在使用的搜索界面。但是,如果我们退后一步,似乎Sitecore应该有一个明确的最佳实践或建议,通过某种Web服务在Sitecore 7中执行搜索。如果你知道这个建议或者有一个选项c,请回复。谢谢!

回答

0

我认为最好是去与选项A)

你只需要做到以下几点:

  1. 实现您的处理器。您需要解析luceneQuery,然后,您可以使用PredicateBuilder或LinqHelper来构建查询。

您可以找到PredicateBuilder in this blog post更多信息

  • 里面的itemWebApiRequest管道,增加新的参数,以<processor type="Sitecore.ItemWebApi.Pipelines.Request.CheckParameters, Sitecore.ItemWebApi" >。像这样:<name desc="item id15">luceneQuery</name>

  • <processor type="Sitecore.ItemWebApi.Pipelines.Request.ResolveItems, Sitecore.ItemWebApi" />

  • 这就是它钩住你的处理器。我希望它有帮助。