1

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

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

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

4

1 回答 1

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 别名保存到搜索索引中。

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

于 2013-01-15T10:18:27.157 回答