Sitecore 7搜索 - 不使用search.ashx的最佳实践搜索

时间:2014-09-18 18:28:49

标签: search lucene sitecore sitecore7

这篇文章表明我们不应该使用search.ashx在Sitecore 7中进行搜索: Sitecore 7 Search - Search.ashx

但是,答案是不正确的,因为您无法使用Item Web API进行搜索,它提供了CRUD访问但不是开箱即用的搜索:

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

因此,我们留下a)在.net sitecore搜索API周围滚动我们自己的搜索包装器并挂钩到Item Web API管道或b)绑定到内部Sitecore搜索服务并希望它不会改变(至少不常见)。就个人而言,我认为选项b更脆弱,但让我走得更快。选项a涉及更多,但会让我更多地控制我正在使用的搜索界面。但是,如果我们退一步,似乎Sitecore应该通过某种Web服务在Sitecore 7中进行搜索时有明确的最佳实践或建议。如果您知道推荐或有选项c请回复。谢谢!

1 个答案:

答案 0 :(得分:0)

我认为最好选择a)

您只需执行以下操作:

  1. 实施您的处理器。您需要解析luceneQuery,然后,您可以使用PredicateBuilder或LinqHelper来构建查询。
  2. 您可以在PredicateBuilder in this blog post

    上找到更多信息
    1. 在itemWebApiRequest管道中,向<processor type="Sitecore.ItemWebApi.Pipelines.Request.CheckParameters, Sitecore.ItemWebApi" >添加一个新参数。这样的事情:<name desc="item id15">luceneQuery</name>

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

    3. 之后挂钩您的处理器

      那就是它。我希望它有所帮助。