在umbraco中进行可选搜索

时间:2013-01-15 08:30:10

标签: asp.net search umbraco umbraco5

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

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

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

1 个答案:

答案 0 :(得分: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实际存储的内容。