繁体   English   中英

在umbraco中进行可选搜索

[英]Make a optional search in umbraco

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

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

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

为此有几个步骤。

你不得不:

  • 创建一个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实际存储的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM