【问题标题】:Make a optional search in umbraco在 umbraco 中进行可选搜索
【发布时间】:2013-01-15 08:30:09
【问题描述】:

我在 umbraco 中创建了新的文档类型。然后通过该文档类型在内容中创建了一些节点。 我将建立一个新的搜索索引,所以找到了这个设置新搜索索引的代码。

@* Get the search term from query string *@
@{var searchTerm = Request.QueryString["search"];}
@{var results = ExamineManager.Instance.Search(searchTerm, true); }

但我不知道如何限制只能在我的文档类型中搜索的代码。

【问题讨论】:

    标签: asp.net search umbraco umbraco5


    【解决方案1】:

    这有几个步骤。

    你必须:

    • 创建ISearchCriteria对象;
    • 从条件对象创建搜索表达式,包括作为要搜索的字段的 docType 别名;
    • 使用表达式搜索。

    这可以编码为:

    var criteria = ExamineManager.Instance.CreateSearchCriteria();
    
    var expression = criteria.Field("nodeTypeAlias", "yourDocTypeAlias")
                             .And()
                             .Field("nodeName", searchTerm);
    
    var results = ExamineManager.Instance.Search(expression.Compile());
    

    这是可能的,因为当 Umbraco 发布一个节点时,它会将节点的 docType 别名保存到搜索索引中。

    还有更多Examine documentation here。我还建议下载Luke,这是一个独立工具,可让您查看索引内部,以便查看 Umbraco 实际存储的内容。

    【讨论】:

      猜你喜欢
      • 2012-12-21
      • 2011-07-13
      • 2016-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-09
      • 2020-02-01
      • 2012-07-13
      相关资源
      最近更新 更多