【发布时间】:2015-02-25 22:32:19
【问题描述】:
正如我的标题所暗示的,我希望我的搜索代码忽略我的媒体文件夹中的任何内容。现在,如果我搜索“test”,它将带回任何带有 test 字样的页面以及任何带有 test 的文档或图像。
有没有办法可以修改我当前的搜索代码来做到这一点?
我的代码如下所示。请注意,我已经删除了我的分页代码,因为它不适用于我的问题:
@{
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>
【问题讨论】:
标签: c# razor umbraco search-engine