正如我的标题所示,我希望我的搜索代码能够省略媒体文件夹中的任何内容。现在,如果我搜索“测试”,它将带回任何带有测试单词的页面以及任何对其进行测试的文档或图像。
有没有办法可以修改我当前的搜索代码来执行此操作?
我的代码看起来像这样。请注意我删除了我的分页代码,因为它不适用于我的问题:
@{
Layout = "Master.cshtml";
@*search variables*@
var searchTerm = Request["term"];
if (String.IsNullOrEmpty(searchTerm))
{
<p>Please use the search box</p>
return;
}
@*the searcher instance to use - Umbraco has 3 by default - InternalSearcher, ExternalSearcher and InternalMemberSearcher *@
var searcher = ExamineManager.Instance.SearchProviderCollection["ExternalSearcher"];
var searchCriteria = searcher.CreateSearchCriteria(BooleanOperation.Or);
@* define node properties to be searched below *@
var query = searchCriteria.GroupedOr(new string[] { "pageTitle", "metaDescription", "nodeName", "heading", "bodyText", "summary" }, searchTerm.Fuzzy(0.5f)).Compile();
var searchResults = searcher.Search(query);
var resultPage = searchResults.Skip(currentPage * itemsPerPage).Take(itemsPerPage);
var noResults = searchResults.Count();
var numberOfPages = Math.Ceiling((decimal)((noResults - 1) / itemsPerPage)) + 1;
var pages = Enumerable.Range(1, (int)numberOfPages);
}
@Html.Partial("Breadcrumb")
<div class="container content">
<h3>You searched for <b>@searchTerm</b>, we found @noResults results</h3>
<ul class="row clearfix list-unstyled newslist">
@foreach (var result in resultPage)
{
<li class="col-md-12 column">
<div class="row clearfix">
<div class="col-md-12 column">
<h2>
@if (result.Fields.ContainsKey("pageTitle"))
{
<a href="@umbraco.library.NiceUrl(result.Id)">@result.Fields["pageTitle"]</a>
}
else
{
<a href="@umbraco.library.NiceUrl(result.Id)">@result.Fields["nodeName"]</a>
}
</h2>
@if (result.Fields.ContainsKey("metaDescription"))
{
<p>
@result.Fields["metaDescription"]
</p>
}
@if (result.Fields.ContainsKey("summary"))
{
<p>
@result.Fields["summary"]
</p>
}
@*@foreach(var fieldItem in result.Fields)
{
<p>@fieldItem.Key <b>: </b> @fieldItem.Value</p>
}*@
<p class="pull-left">
</p><div class="addthis_sharing_toolbox"></div>
<p></p>
<p class="pull-right">
<a class="btn btn-green" href="@umbraco.library.NiceUrl(result.Id)">View details »</a>
</p>
</div>
</div>
</li>
}
</ul>
</div>
答案 0 :(得分:2)
您只需在搜索条件中指定索引类型:
var searchCriteria = searcher.CreateSearchCriteria(UmbracoExamine.IndexTypes.Content, BooleanOperation.Or);
这会将搜索范围限制在您网站“内容”部分中的项目。